Documentazione del codice

The C++ API documentation is also available as doxgen documentation.

struct Hash::_ht

Public Members

unsigned int count
HashElem *chain
union addr16_t

Public Members

uint8_t *bptr
uint16_t *wptr
uint16_t word
uint8_t bytes[2]
struct AggInfo

Public Members

u8 directMode
u8 useSortingIdx
u16 nSortingColumn
int sortingIdx
int sortingIdxPTab
int iFirstReg
ExprList *pGroupBy
struct AggInfo::AggInfo_col *aCol
int nColumn
int nAccumulator
struct AggInfo::AggInfo_func *aFunc
int nFunc
u32 selId
struct AggInfo::AggInfo_col

Public Members

Table *pTab
Expr *pCExpr
int iTable
i16 iColumn
i16 iSorterColumn
struct AggInfo::AggInfo_func

Public Members

Expr *pFExpr
FuncDef *pFunc
int iDistinct
int iDistAddr
int iOBTab
u8 bOBPayload
u8 bOBUnique
u8 bUseSubtype
struct analysisInfo

Public Members

sqlite3 *db
const char *zDatabase
struct AuthContext

Public Members

const char *zAuthContext
Parse *pParse
struct AutoincInfo

Public Members

AutoincInfo *pNext
Table *pTab
int iDb
int regCtr
struct AuxData

Public Members

int iAuxOp
int iAuxArg
void *pAux
void (*xDeleteAux)(void*)
AuxData *pNextAux
struct BenignMallocHooks

Public Members

void (*xBenignBegin)(void)
void (*xBenignEnd)(void)
struct bin_value_t

Public Members

uint16_t sample

last sample

uint16_t med

average values of observations

uint16_t sigma

standard deviation of observations

class cpp_freertos::BinaryQueue : public cpp_freertos::Queue
#include <queue.hpp>

Binary queue with overwrite. This queue can only hold one item. If sucessive Enqueue operations are called, that item is overwritten with whatever the last item was.

Note

It is expected that an application will instantiate this class or one of the derived classes and use that. It is not expected that a user or application will derive from these classes.

Public Functions

explicit BinaryQueue(UBaseType_t itemSize)

Our constructor.

Note

FreeRTOS queues use a memcpy / fixed size scheme for queues.

Exceptions
Parameters
  • itemSize: Size of an item in a queue.

virtual bool Enqueue(void *item)

Add an item to the queue.

Return

true always, because of overwrite.

Parameters
  • item: The item you are adding.

virtual bool EnqueueFromISR(void *item, BaseType_t *pxHigherPriorityTaskWoken)

Add an item to the queue in ISR context.

Return

true always, because of overwrite.

Parameters
  • item: The item you are adding.

  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

class cpp_freertos::BinarySemaphore : public cpp_freertos::Semaphore
#include <semaphore.hpp>

Wrapper class for Binary Semaphores.

Public Functions

explicit BinarySemaphore(bool set = false)

Constructor to create a binary semaphore.

Return

Instance of a BinarySemaphore.

Parameters
  • set: Is this semaphore "full" or not?

Exceptions

class BitBangedSPI

Public Functions

inline void begin()
inline void beginTransaction(SPISettings settings)
inline void end()
inline uint8_t transfer(uint8_t b)

Private Members

unsigned long pulseWidth
struct Bitvec

Public Members

u32 iSize
u32 nSet
u32 iDivisor
BITVEC_TELEM aBitmap[BITVEC_NELEM]
u32 aHash[BITVEC_NINT]
Bitvec *apSub[BITVEC_NPTR]
union Bitvec::[anonymous] u
struct BtCursor

Public Members

u8 eState
u8 curFlags
u8 curPagerFlags
u8 hints
int skipNext
Btree *pBtree
Pgno *aOverflow
void *pKey
BtShared *pBt
BtCursor *pNext
CellInfo info
i64 nKey
Pgno pgnoRoot
i8 iPage
u8 curIntKey
u16 ix
u16 aiIdx[BTCURSOR_MAX_DEPTH - 1]
struct KeyInfo *pKeyInfo
MemPage *pPage
MemPage *apPage[BTCURSOR_MAX_DEPTH - 1]
struct BtLock

Public Members

Btree *pBtree
Pgno iTable
u8 eLock
BtLock *pNext
struct Btree

Public Members

sqlite3 *db
BtShared *pBt
u8 inTrans
u8 sharable
u8 locked
u8 hasIncrblobCur
int wantToLock
int nBackup
u32 iBDataVersion
Btree *pNext
Btree *pPrev
BtLock lock
struct BtreePayload

Public Members

const void *pKey
sqlite3_int64 nKey
const void *pData
sqlite3_value *aMem
u16 nMem
int nData
int nZero
struct BtShared

Public Members

Pager *pPager
sqlite3 *db
BtCursor *pCursor
MemPage *pPage1
u8 openFlags
u8 autoVacuum
u8 incrVacuum
u8 bDoTruncate
u8 inTransaction
u8 max1bytePayload
u8 nReserveWanted
u16 btsFlags
u16 maxLocal
u16 minLocal
u16 maxLeaf
u16 minLeaf
u32 pageSize
u32 usableSize
int nTransaction
u32 nPage
void *pSchema
void (*xFreeSchema)(void*)
sqlite3_mutex *mutex
Bitvec *pHasContent
int nRef
BtShared *pNext
BtLock *pLock
Btree *pWriter
u8 *pTmpSpace
int nPreformatSize
struct BusyHandler

Public Members

int (*xBusyHandler)(void*, int)
void *pBusyArg
int nBusy
struct CallCount

Public Members

i64 nValue
i64 nStep
i64 nTotal
struct CellArray

Public Members

int nCell
MemPage *pRef
u8 **apCell
u16 *szCell
u8 *apEnd[NB * 2]
int ixNx[NB * 2]
struct CellInfo

Public Members

i64 nKey
u8 *pPayload
u32 nPayload
u16 nLocal
u16 nSize
struct CollSeq

Public Members

char *zName
u8 enc
void *pUser
int (*xCmp)(void*, int, const void*, int, const void*)
void (*xDel)(void*)
struct Column

Public Members

char *zCnName
unsigned notNull
unsigned eCType
char affinity
u8 szEst
u8 hName
u16 iDflt
u16 colFlags
struct compareInfo

Public Members

u8 matchAll
u8 matchOne
u8 matchSet
u8 noCase
struct configuration_t
#include <i2c-leaf.h>

EEPROM saved configuration.

Public Members

uint8_t module_main_version

module main version

uint8_t module_configuration_version

module configuration version

uint8_t module_type

module type

uint8_t i2c_address

i2c address

bool is_oneshot

enable or disable oneshot mode

uint16_t leaf_calibration_threshold
uint8_t module_version

module version

bool is_continuous

enable or disable continuous mode

NOT USED enable or disable continuous mode.

uint16_t adc_voltage_max_panel
uint16_t adc_voltage_max_battery
float adc_voltage_offset_1
float adc_voltage_offset_2
float adc_voltage_min
float adc_voltage_max
float adc_calibration_offset[ADS1115_CHANNEL_COUNT]
float adc_calibration_gain[ADS1115_CHANNEL_COUNT]
float sensor_rad_max[ADS1115_CHANNEL_COUNT]
float sensor_voltage_max[ADS1115_CHANNEL_COUNT]
uint16_t tipping_bucket_time_ms

Tipping bucket time in milliseconds.

uint8_t rain_for_tip

How much mm of rain for one tip of tipping bucket rain gauge.

sensor_conf_t sensors[2]

sensors configurations

SensorDriver buffer for storing sensors parameter.

sensor_t sensors[SENSORS_MAX]

SensorDriver buffer for storing sensors parameter.

uint8_t sensors_count

configured sensors number

uint16_t report_seconds

seconds for report values

constantdata_t constantdata[USE_CONSTANTDATA_COUNT]

Constantdata buffer for storing constant station data parameter.

uint8_t constantdata_count

configured constantdata number

bool is_dhcp_enable

dhcp status

uint8_t ethernet_mac[ETHERNET_MAC_LENGTH]

ethernet mac

uint8_t ip[ETHERNET_IP_LENGTH]

ip address

uint8_t netmask[ETHERNET_IP_LENGTH]

netmask

uint8_t gateway[ETHERNET_IP_LENGTH]

gateway

uint8_t primary_dns[ETHERNET_IP_LENGTH]

primary dns

struct constantdata_t

Public Members

char btable[CONSTANTDATA_BTABLE_LENGTH]

table B code for constant station data

char value[CONSTANTDATA_VALUE_LENGTH]

value of constant station data

struct CountCtx

Public Members

i64 n
class cpp_freertos::CountingSemaphore : public cpp_freertos::Semaphore
#include <semaphore.hpp>

Wrapper class for Counting Semaphores.

Public Functions

CountingSemaphore(UBaseType_t maxCount, UBaseType_t initialCount)

Constructor to create a counting semaphore. This ctor throws a SemaphoreCreateException on failure.

Return

Instance of a CountingSemaphore.

Parameters
  • maxCount: Must be greater than 0.

  • initialCount: Must not be greater than maxCount.

Exceptions

struct CoveringIndexCheck

Public Members

Index *pIdx
int iTabCur
u8 bExpr
u8 bUnidx
class cpp_freertos::CriticalSection
#include <critical.hpp>

Wrapper class around various critical section type synchronization mechanisms within FreeRTOS.

Public Static Functions

static inline void Enter(spinlock_t *spinlock)

Disable context switches as well as maskable interrupts.

Note

See the following for further details: https://docs.espressif.com/projects/esp-idf/en/release-v4.4/esp32/api-guides/freertos-smp.html#critical-sections

static inline void Exit(spinlock_t *spinlock)

Re-enable context switches.

Note

See the following for further details: https://docs.espressif.com/projects/esp-idf/en/release-v4.4/esp32/api-guides/freertos-smp.html#critical-sections

static inline void EnterISR(spinlock_t *spinlock)

Disable context switches as well as maskable interrupts from an interrupt context.

Note

See the following for further details: https://docs.espressif.com/projects/esp-idf/en/release-v4.4/esp32/api-guides/freertos-smp.html#critical-sections

Parameters
  • spinlock:

static inline void ExitISR(spinlock_t *spinlock)

Re-enable context switches from an interrupt context.

Note

See the following for further details: https://docs.espressif.com/projects/esp-idf/en/release-v4.4/esp32/api-guides/freertos-smp.html#critical-sections

Parameters
  • spinlock:

static inline BaseType_t EnterFromISR()

Disable context switches as well as maskable interrupts from an interrupt context.

Return

Opaque representation of interrupt mask state. This must be passed back to the corresponding call to ExitFromISR().

Note

See the following for further details: http://www.freertos.org/taskENTER_CRITICAL_FROM_ISR_taskEXIT_CRITICAL_FROM_ISR.html

static inline void ExitFromISR(BaseType_t savedInterruptStatus)

Re-enable context switches from an interrupt context.

Note

See the following for further details: http://www.freertos.org/taskENTER_CRITICAL_FROM_ISR_taskEXIT_CRITICAL_FROM_ISR.html

Parameters
  • savedInterruptStatus: This should be the value you received from calling EnterFromISR().

static inline void DisableInterrupts()

Disable all maskable interrupts.

static inline void EnableInterrupts()

Enable all maskable interrupts.

static inline void SuspendScheduler()

Suspend the scheduler without disabling interrupts.

static inline void ResumeScheduler()

Re-enable the scheduler.

struct Cte

Public Members

char *zName
ExprList *pCols
Select *pSelect
const char *zCteErr
CteUse *pUse
u8 eM10d
struct CteUse

Public Members

int nUse
int addrM9e
int regRtn
int iCur
LogEst nRowEst
u8 eM10d
class cpp_freertos::WorkQueue::CWorkerThread : public cpp_freertos::Thread

An internal derived Thread class, in which we do our real work.

Public Functions

CWorkerThread(const char *const Name, uint16_t StackDepth, UBaseType_t Priority, WorkQueue *Parent)
CWorkerThread(uint16_t StackDepth, UBaseType_t Priority, WorkQueue *Parent)
virtual ~CWorkerThread()

Protected Functions

virtual void Run()

Private Members

const WorkQueue *ParentWorkQueue
struct data_t

Public Members

int16_t sample_panel
int16_t sample_battery
int16_t avg_panel
int16_t avg_battery
int16_t sample
int16_t avg
struct DateTime

Public Members

sqlite3_int64 iJD
int Y
int M
int D
int h
int m
int tz
double s
char validJD
char validYMD
char validHMS
char nFloor
unsigned rawS
unsigned isError
unsigned useSubsec
unsigned isUtc
unsigned isLocal
struct Db

Public Members

char *zDbSName
Btree *pBt
u8 safety_level
u8 bSyncSet
Schema *pSchema
struct db_data_t

Public Members

int id
frtosLogging *logger
Queue *dbqueue
Queue *mqttqueue
BinarySemaphore *recoverysemaphore
BinaryQueue *recoveryqueue
dbStatus_t *status
struct DbClientData

Public Members

DbClientData *pNext
void *pData
void (*xDestructor)(void*)
char zName[1]
struct DbFixer

Public Members

Parse *pParse
Walker w
Schema *pSchema
u8 bTemp
const char *zDb
const char *zType
const Token *pName
struct DblquoteStr

Public Members

DblquoteStr *pNextStr
char z[8]
struct dbStatus_t

Public Members

status_e database

stato di funzionamento del DataBase

class dbThread : public cpp_freertos::Thread

Public Functions

dbThread(db_data_t *db_data)

Constructor to create a DB thread.

Parameters
  • db_data: data used by thread.

~dbThread()
virtual void Cleanup()

Protected Functions

virtual void Run()

Implementation of your actual thread code. You must override this function.

Note

If INCLUDE_vTaskDelete is defined, then you may return from your Run method. This will cause the task to be deleted from FreeRTOS, however you are still responsible to delete the task object. If this is not defined, then retuning from your Run() method will result in an assert.

Private Functions

bool doDb(const mqttMessage_t&)
int db_exec(const char*)
bool db_obsolete()
bool db_remove()
void db_setup()
bool data_purge(int messages)
bool data_recovery()
bool data_set_recovery()
bool db_restart()

Private Members

db_data_t *data
sqlite3 *db
uint8_t sqlite_memory[SQLITE_MEMORY]
bool sqlite_status
rpcRecovery_t rpcrecovery
File archiveFile

File for archive on SD-Card.

class cpp_freertos::Deque : public cpp_freertos::Queue
#include <queue.hpp>

Enhanced queue class that implements a double ended queue (a "deque"), almost. Unlike the traditional CommSci version, there is no way to dequeue from the back. Practically, this most likely isn't a big deal.

Note

It is expected that an application will instantiate this class or one of the derived classes and use that. It is not expected that a user or application will derive from these classes.

Public Functions

Deque(UBaseType_t maxItems, UBaseType_t itemSize)

Our constructor.

Note

FreeRTOS queues use a memcpy / fixed size scheme for queues.

Exceptions
Parameters
  • maxItems: Maximum number of items thsi queue can hold.

  • itemSize: Size of an item in a queue.

bool EnqueueToFront(void *item, TickType_t Timeout = portMAX_DELAY)

Add an item to the front of the queue. This will result in the item being removed first, ahead of all of the items added by the base calss Dequeue() function.

Return

true if the item was added, false if it was not.

Parameters
  • item: The item you are adding.

  • Timeout: How long to wait to add the item to the queue if the queue is currently full.

bool EnqueueToFrontFromISR(void *item, BaseType_t *pxHigherPriorityTaskWoken)

Add an item to the front of the queue. This will result in the item being removed first, ahead of all of the items added by the base calss Dequeue() function.

Return

true if the item was added, false if it was not.

Parameters
  • item: The item you are adding.

  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

struct DIR

Public Members

WORD index
BYTE *fn
CLUST sclust
CLUST clust
DWORD sect
struct DistinctCtx

Public Members

u8 isTnct
u8 eTnctType
int tabTnct
int addrTnct
struct EdupBuf

Public Members

u8 *zAlloc
struct ESP32File

Public Members

sqlite3_file base
FILE *fp
char *aBuffer
int nBuffer
sqlite3_int64 iBufferOfst
struct et_info

Public Members

char fmttype
etByte base
etByte flags
etByte type
etByte charset
etByte prefix
class cpp_freertos::EventGroup
#include <event_groups.hpp>

Todo:

  • document this class

Public Functions

EventGroup()

Construct a Event Group

EventBits_t Sync(const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)

Allow two or more tasks to use an event group to sync each other.

Return

If EventGroup::Sync returned because all the bits it was waiting for were set then the returned value is the event group value before any bits were automatically cleared. If EventGroup::Sync returned because its timeout expired then not all the bits being waited for will be set.

Parameters
  • uxBitsToSet: A bit mask that specifies the event bit, or event bits, to set 1 in the event group. The value of the event groups is updated by bitwise ORing the event group's existing value with the passed in uxBitsToSet.

  • uxBitsToWaitFor: The bit or bits to set in the event group before determining if (and possibly waiting for), all the bits specified by the uxBitsToWait parameter are set.

  • xTicksToWait: The maximum amount of time (specified in 'ticks') to wait for all the bits specified by the uxBitsToWaitFor parameter value to become set.

EventBits_t WaitBits(const EventBits_t uxBitsToWaitFor, bool xClearOnExit, bool xWaitForAllBits, TickType_t xTicksToWait)

Read bits within an RTOS event group, optionally entering the Blocked state (with a timeout) to wait for a bit or group of bits to become set.

Return

The value of the event group at the time either the event bits being waited for became set, or the block time expired. The current value of the event bits in an event group will be different to the returned value if a higher priority task or interrupt changed the value of an event bit between the calling task leaving the Blocked state and exiting the EventGroup::WaitBits function. Test the return value to know which bits were set. If EventGroup::WaitBits returned because its timeout expired then not all the bits being waited for will be set. If EventGroup::WaitBits returned because the bits it was waiting for were set then the returned value is the event group value before any bits were automatically cleared because the xClearOnExit parameter was set to true.

Parameters
  • uxBitsToWaitFor: A bitwise value that indicates the bit or bits to test inside the event group.

  • xClearOnExit: If xClearOnExit is set to true then any bits set in the value passed as the uxBitsToWaitFor parameter will be cleared in the event group before EventGroup::WaitBits returns if EventGroup::WaitBits returns for any reason other than a timeout. The timeout value is set by the xTicksToWait parameter. If xClearOnExit is set to false then the bits set in the event group are not altered when the call to EventGroup::WaitBits returns.

  • xWaitForAllBits: is used to create either a logical AND test (where all bits must be set) or a logical OR test (where one or more bits must be set) as follows:

    @par    If xWaitForAllBits is set to true then
            EventGroup::WaitBits will return when either all the
            bits set in the value passed as the uxBitsToWaitFor
            parameter are set in the event group or the specified
            block time expires.
    
    @par   If xWaitForAllBits is set to false then
            EventGroup::WaitBits will return when any of the bits
            set in the value passed as the uxBitsToWaitFor
            parameter are set in the event group or the specified
            block time expires.
    

  • xTicksToWait: The maximum amount of time (specified in 'ticks') to wait for one/all (depending on the xWaitForAllBits value) of the bits specified by uxBitsToWaitFor to become set.

EventBits_t ClearBits(const EventBits_t uxBitsToClear)

Clear bits (flags) within an event group.

Return

The value of the event group before the specified bits were cleared.

Parameters
  • uxBitsToClear: A bitwise value that indicates the bit or bits to clear in the event group.

BaseType_t ClearBitsFromISR(const EventBits_t uxBitsToClear)

Clear bits (flags) within an event group from ISR context.

Return

The value of the event group before the specified bits were cleared.

Parameters
  • uxBitsToClear: A bitwise value that indicates the bit or bits to clear in the event group.

EventBits_t GetBits()

Returns the current value of the event bits (event flags) in an event group.

Return

The value of the event bits in the event group at the time EventGroup::GetBitsFromISR was called.

EventBits_t GetBitsFromISR()

Returns the current value of the event bits (event flags) in an event group from ISR context.

Return

The value of the event bits in the event group at the time EventGroup::GetBitsFromISR was called.

EventBits_t SetBits(const EventBits_t uxBitsToSet)

Set bits (flags) within an event group.

Return

The value of the event group at the time the call to EventGroup::SetBits returns

Parameters
  • uxBitsToSet: A bitwise value that indicates the bit or bits to set in the event group.

virtual ~EventGroup()

Our destructor

Protected Attributes

EventGroupHandle_t handle

FreeRTOS Event Group handle.

class cpp_freertos::EventGroupCreateException : public std::exception
#include <event_groups.hpp>

This is the exception that is thrown if an EventGroup constructor fails.

Public Functions

inline EventGroupCreateException()

Create the exception.

inline explicit EventGroupCreateException(const char *info)

Create the exception.

inline virtual const char *what() const

Get what happened as a string. We are overriding the base implementation here.

Private Members

char errorString[80]

A text string representing what failed.

struct Expr

Public Members

u8 op
char affExpr
u8 op2
u32 flags
char *zToken
int iValue
union Expr::[anonymous] u
Expr *pLeft
Expr *pRight
ExprList *pList
Select *pSelect
union Expr::[anonymous] x
int iTable
ynVar iColumn
i16 iAgg
int iJoin
int iOfst
union Expr::[anonymous] w
AggInfo *pAggInfo
Table *pTab
Window *pWin
int iAddr
int regReturn
struct Expr::[anonymous]::[anonymous] sub
union Expr::[anonymous] y
struct ExprList

Public Members

int nExpr
int nAlloc
struct ExprList::ExprList_item a[1]
struct ExprList::ExprList_item

Public Members

Expr *pExpr
char *zEName
u8 sortFlags
unsigned eEName
unsigned done
unsigned reusable
unsigned bSorterRef
unsigned bNulls
unsigned bUsed
unsigned bUsingTerm
unsigned bNoExpand
struct ExprList::ExprList_item::[anonymous] fg
u16 iOrderByCol
u16 iAlias
struct ExprList::ExprList_item::[anonymous]::[anonymous] x
int iConstExprReg
union ExprList::ExprList_item::[anonymous] u
struct FatFileDesc

Public Members

uint32_t firstFatBlock
uint32_t dataBlock
uint8_t blocksPerCluster
struct FATFS

Public Members

BYTE fs_type
BYTE flag
BYTE csize
BYTE pad1
WORD n_rootdir
CLUST n_fatent
DWORD fatbase
DWORD dirbase
DWORD database
DWORD fptr
DWORD fsize
CLUST org_clust
CLUST curr_clust
DWORD dsect
struct FileChunk

Public Members

FileChunk *pNext
u8 zChunk[8]
struct FilePoint

Public Members

sqlite3_int64 iOffset
FileChunk *pChunk
struct FILINFO

Public Members

DWORD fsize
WORD fdate
WORD ftime
BYTE fattrib
char fname[13]
struct FKey

Public Members

Table *pFrom
FKey *pNextFrom
char *zTo
FKey *pNextTo
FKey *pPrevTo
int nCol
u8 isDeferred
u8 aAction[2]
Trigger *apTrigger[2]
struct FKey::sColMap aCol[1]
struct float_observation_t

Public Members

float med[OBSERVATION_COUNT]

buffer containing the mean values calculated on a one sample buffer respectively

uint16_t count

number of observations

float *read_ptr

reader pointer to buffer (read observations for calculate report value)

float *write_ptr

writer pointer to buffer (add new observation)

struct FpDecode

Public Members

char sign
char isSpecial
int n
int iDP
char *z
char zBuf[24]
struct FrameBound

Public Members

int eType
Expr *pExpr
struct fts5_api

Public Members

int iVersion
int (*xCreateTokenizer)(fts5_api *pApi, const char *zName, void *pUserData, fts5_tokenizer *pTokenizer, void (*xDestroy)(void*))
int (*xFindTokenizer)(fts5_api *pApi, const char *zName, void **ppUserData, fts5_tokenizer *pTokenizer)
int (*xCreateFunction)(fts5_api *pApi, const char *zName, void *pUserData, fts5_extension_function xFunction, void (*xDestroy)(void*))
struct fts5_tokenizer

Public Members

int (*xCreate)(void*, const char **azArg, int nArg, Fts5Tokenizer **ppOut)
void (*xDelete)(Fts5Tokenizer*)
int (*xTokenize)(Fts5Tokenizer*, void *pCtx, int flags, const char *pText, int nText, int (*xToken)(void *pCtx, int tflags, const char *pToken, int nToken, int iStart, int iEnd))
struct Fts5ExtensionApi

Public Members

int iVersion
void *(*xUserData)(Fts5Context*)
int (*xColumnCount)(Fts5Context*)
int (*xRowCount)(Fts5Context*, sqlite3_int64 *pnRow)
int (*xColumnTotalSize)(Fts5Context*, int iCol, sqlite3_int64 *pnToken)
int (*xTokenize)(Fts5Context*, const char *pText, int nText, void *pCtx, int (*xToken)(void*, int, const char*, int, int, int))
int (*xPhraseCount)(Fts5Context*)
int (*xPhraseSize)(Fts5Context*, int iPhrase)
int (*xInstCount)(Fts5Context*, int *pnInst)
int (*xInst)(Fts5Context*, int iIdx, int *piPhrase, int *piCol, int *piOff)
sqlite3_int64 (*xRowid)(Fts5Context*)
int (*xColumnText)(Fts5Context*, int iCol, const char **pz, int *pn)
int (*xColumnSize)(Fts5Context*, int iCol, int *pnToken)
int (*xQueryPhrase)(Fts5Context*, int iPhrase, void *pUserData, int (*)(const Fts5ExtensionApi*, Fts5Context*, void*))
int (*xSetAuxdata)(Fts5Context*, void *pAux, void (*xDelete)(void*))
void *(*xGetAuxdata)(Fts5Context*, int bClear)
int (*xPhraseFirst)(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*, int*)
void (*xPhraseNext)(Fts5Context*, Fts5PhraseIter*, int *piCol, int *piOff)
int (*xPhraseFirstColumn)(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*)
void (*xPhraseNextColumn)(Fts5Context*, Fts5PhraseIter*, int *piCol)
int (*xQueryToken)(Fts5Context*, int iPhrase, int iToken, const char **ppToken, int *pnToken)
int (*xInstToken)(Fts5Context*, int iIdx, int iToken, const char**, int*)
struct Fts5PhraseIter

Public Members

const unsigned char *a
const unsigned char *b
struct FuncDef

Public Members

i8 nArg
u32 funcFlags
void *pUserData
FuncDef *pNext
void (*xSFunc)(sqlite3_context*, int, sqlite3_value**)
void (*xFinalize)(sqlite3_context*)
void (*xValue)(sqlite3_context*)
void (*xInverse)(sqlite3_context*, int, sqlite3_value**)
const char *zName
FuncDef *pHash
FuncDestructor *pDestructor
union FuncDef::[anonymous] u
struct FuncDefHash

Public Members

FuncDef *a[SQLITE_FUNC_HASH_SZ]
struct FuncDestructor

Public Members

int nRef
void (*xDestroy)(void*)
void *pUserData
struct georef_t

Public Members

char lon[11]

longitudine in sessadecimale 5 decimali rappresentazione intera

char lat[11]

latitudine in sessadecimale 5 decimali rappresentazione intera

time_t timestamp

timestamp delle coordinate

cpp_freertos::MutexStandard *mutex

mutex per l'accesso ai dati

struct gps_data_t

Public Members

int id
frtosLogging *logger
gpsStatus_t *status
georef_t *georef
struct gpsStatus_t

Public Members

status_e receive

stato della ricezione dei dati per georeferenziazione

class gpsThread : public cpp_freertos::Thread

Public Functions

gpsThread(gps_data_t *gps_data)

Constructor to create a GPS thread.

Parameters
  • gps_data: data used by thread.

~gpsThread()
virtual void Cleanup()

Protected Functions

virtual void Run()

Implementation of your actual thread code. You must override this function.

Note

If INCLUDE_vTaskDelete is defined, then you may return from your Run method. This will cause the task to be deleted from FreeRTOS, however you are still responsible to delete the task object. If this is not defined, then retuning from your Run() method will result in an assert.

Private Functions

void GPS_SerialInit()
void doSerialNmea()

Private Members

gps_data_t *data
struct GroupConcatCtx

Public Members

StrAccum str
int nAccum
int nFirstSepLength
int *pnSepLengths
struct Hash

Public Members

unsigned int htsize
unsigned int count
HashElem *first
struct Hash::_ht *ht
struct HashElem

Public Members

HashElem *next
HashElem *prev
void *data
const char *pKey
struct HiddenIndexInfo

Public Members

WhereClause *pWC
Parse *pParse
int eDistinct
u32 mIn
u32 mHandleIn
sqlite3_value *aRhs[1]
struct IdList

Public Members

int nId
u8 eU4
struct IdList::IdList_item a[1]
struct IdList::IdList_item

Public Members

char *zName
int idx
Expr *pExpr
union IdList::IdList_item::[anonymous] u4
struct IdxCover

Public Members

Index *pIdx
int iCur
struct ihex_state

Public Members

ihex_address_t address
ihex_segment_t segment
ihex_flags_t flags
uint8_t line_length
uint8_t length
uint8_t data[IHEX_LINE_MAX_LENGTH + 1]
struct Incrblob

Public Members

int nByte
int iOffset
u16 iCol
BtCursor *pCsr
sqlite3_stmt *pStmt
sqlite3 *db
char *zDb
Table *pTab
struct IncrMerger

Public Members

SortSubtask *pTask
MergeEngine *pMerger
i64 iStartOff
int mxSz
int bEof
int bUseThread
SorterFile aFile[2]
struct Index

Public Members

char *zName
i16 *aiColumn
LogEst *aiRowLogEst
Table *pTable
char *zColAff
Index *pNext
Schema *pSchema
u8 *aSortOrder
const char **azColl
Expr *pPartIdxWhere
ExprList *aColExpr
Pgno tnum
LogEst szIdxRow
u16 nKeyCol
u16 nColumn
u8 onError
unsigned idxType
unsigned bUnordered
unsigned uniqNotNull
unsigned isResized
unsigned isCovering
unsigned noSkipScan
unsigned hasStat1
unsigned bLowQual
unsigned bNoQuery
unsigned bAscKeyBug
unsigned bHasVCol
unsigned bHasExpr
Bitmask colNotIdxed
struct IndexedExpr

Public Members

Expr *pExpr
int iDataCur
int iIdxCur
int iIdxCol
u8 bMaybeNullRow
u8 aff
IndexedExpr *pIENext
struct IndexIterator

Public Members

int eType
int i
Index *pIdx
struct IndexIterator::[anonymous]::[anonymous] lx
int nIdx
IndexListTerm *aIdx
struct IndexIterator::[anonymous]::[anonymous] ax
union IndexIterator::[anonymous] u
struct IndexListTerm

Public Members

Index *p
int ix
struct IndexSample

Public Members

void *p
int n
tRowcnt *anEq
tRowcnt *anLt
tRowcnt *anDLt
struct InitData

Public Members

sqlite3 *db
char **pzErrMsg
int iDb
int rc
u32 mInitFlags
u32 nInitRow
Pgno mxPage
struct IntegrityCk

Public Members

BtShared *pBt
Pager *pPager
u8 *aPgRef
Pgno nCkPage
int mxErr
int nErr
int rc
u32 nStep
const char *zPfx
Pgno v0
Pgno v1
int v2
StrAccum errMsg
u32 *heap
sqlite3 *db
i64 nRow
struct JsonCache

Public Members

sqlite3 *db
int nUsed
JsonParse *a[JSON_CACHE_SIZE]
struct JsonEachConnection

Public Members

sqlite3_vtab base
sqlite3 *db
struct JsonEachCursor

Public Members

sqlite3_vtab_cursor base
u32 iRowid
u32 i
u32 iEnd
u32 nRoot
u8 eType
u8 bRecursive
u32 nParent
u32 nParentAlloc
JsonParent *aParent
sqlite3 *db
JsonString path
JsonParse sParse
struct JsonParent

Public Members

u32 iHead
u32 iValue
u32 iEnd
u32 nPath
i64 iKey
struct JsonParse

Public Members

u8 *aBlob
u32 nBlob
u32 nBlobAlloc
char *zJson
sqlite3 *db
int nJson
u32 nJPRef
u32 iErr
u16 iDepth
u8 nErr
u8 oom
u8 bJsonIsRCStr
u8 hasNonstd
u8 bReadOnly
u8 eEdit
int delta
u32 nIns
u32 iLabel
u8 *aIns
struct JsonPretty

Public Members

JsonParse *pParse
JsonString *pOut
const char *zIndent
u32 szIndent
u32 nIndent
struct JsonString

Public Members

sqlite3_context *pCtx
char *zBuf
u64 nAlloc
u64 nUsed
u8 bStatic
u8 eErr
char zSpace[100]
struct KeyInfo

Public Members

u32 nRef
u8 enc
u16 nKeyField
u16 nAllField
sqlite3 *db
u8 *aSortFlags
CollSeq *aColl[1]
struct LastValueCtx

Public Members

sqlite3_value *pVal
int nVal
struct leaf_wetness_t
#include <i2c-leaf.h>

Leaf wetness data.

Public Members

uint32_t time

time in seconds that indicates wet leaf

struct lnk_lst

Public Members

char *data
struct lnk_lst *previous
class cpp_freertos::LockGuard
#include <mutex.hpp>

Synchronization helper class that leverages the C++ language to help prevent deadlocks. This is a C++11 feature that allows Mutex Locking and Unlocking to behave following an RAII style. The constructor of this helper object locks the Mutex. The destructor unlocks the Mutex. Since C++ guarantees that an object's desctuctor is always called when it goes out of scope, calls to Unlock become unnecessary and are in fact guaranteed as long as correct scoping is used.

Public Functions

explicit LockGuard(Mutex &m)

Create a LockGuard with a specific Mutex.

Post

The Mutex will be locked.

Note

There is an infinite timeout for acquiring the Lock.

~LockGuard()

Destroy a LockGuard.

Post

The Mutex will be unlocked.

Private Functions

LockGuard(const LockGuard&)

We do not want a copy constructor.

Private Members

Mutex &mutex

Reference to the Mutex we locked, so it can be unlocked in the destructor.

struct Lookaside

Public Members

u32 bDisable
u16 sz
u16 szTrue
u8 bMalloced
u32 nSlot
u32 anStat[3]
LookasideSlot *pInit
LookasideSlot *pFree
LookasideSlot *pSmallInit
LookasideSlot *pSmallFree
void *pMiddle
void *pStart
void *pEnd
void *pTrueEnd
struct LookasideSlot

Public Members

LookasideSlot *pNext
struct measure_data_t

Public Members

int id
frtosLogging *logger
Queue *mqttqueue
Queue *dbqueue
measureStatus_t *status
station_t *station
summarydata_t *summarydata
MutexStandard *i2cmutex
georef_t *georef
sensor_t sensors[SENSORS_MAX]
uint8_t sensors_count
struct measureStatus_t

Public Members

status_e novalue

stato delle misurazioni

status_e sensor

stato dei sensori

status_e geodef

stato dei dati di georefenzazione per la pubblicazione

class measureThread : public cpp_freertos::Thread

Public Functions

measureThread(measure_data_t *measure_data)
~measureThread()
virtual void Cleanup()
void Begin()

Protected Functions

virtual void Run()

Implementation of your actual thread code. You must override this function.

Note

If INCLUDE_vTaskDelete is defined, then you may return from your Run method. This will cause the task to be deleted from FreeRTOS, however you are still responsible to delete the task object. If this is not defined, then retuning from your Run() method will result in an assert.

Private Functions

void reset_summary_data()
void doMeasure()
void enqueueMqttMessage(uint8_t i)
void get_summary_data(uint8_t i)

Private Members

measure_data_t *data
SensorDriver *sd[SENSORS_MAX]
sensorManage sensorm[SENSORS_MAX]
uint8_t sensors_count
struct Mem0Global

Public Members

sqlite3_mutex *mutex
sqlite3_int64 alarmThreshold
sqlite3_int64 hardLimit
int nearlyFull
struct MemFile

Public Members

sqlite3_file base
MemStore *pStore
int eLock
struct MemFS

Public Members

int nMemStore
MemStore **apMemStore
struct MemJournal

Public Members

const sqlite3_io_methods *pMethod
int nChunkSize
int nSpill
FileChunk *pFirst
FilePoint endpoint
FilePoint readpoint
int flags
sqlite3_vfs *pVfs
const char *zJournal
class cpp_freertos::MemoryPool
#include <mem_pool.hpp>

Memory Pools are fixed size allocations to prevent fragmentation.

This is a new feature to FreeRTOS Wrappers and is not in and of itself a wrapper.

Memory Pools are thread safe, but cannot be used in ISR context. The OS must be running, because these use Mutexes to protect internal data structures.

Public Functions

MemoryPool(int itemSize, int itemCount, int alignment)

Constructor to create a Memory Pool.

This constructor uses the system malloc to actually obtain the memory.

Parameters
  • itemSize: How big is each item you want to allocate.

  • itemCount: How many items max do you want to allocate at once.

  • Alignment: Power of 2 value denoting on which address boundary the memory will be aligned to. Must be at least sizeof(unsigned char *).

Exceptions

MemoryPool(int itemSize, void *preallocatedMemory, int preallocatedMemorySize, int alignment)

Constructor to create a Memory Pool.

This constructor uses memory you pass in to actually create the pool. This constructor does not throw.

Parameters
  • itemSize: How big is each item you want to allocate.

  • preallocatedMemory: Pointer to the preallocated memory you are dedicating to this pool.

  • preallocatedMemorySize: How big is the buffer you are passing in.

  • Alignment: Power of 2 value denoting on which address boundary the memory will be aligned to. Must be at least sizeof(unsigned char *).

Exceptions

void AddMemory(int itemCount)

Allows you to add memory to a MemoryPool.

Items will be the same size as you initially asked for.

Parameters
  • itemCount: How many more items max do you want to allocate

Exceptions

void AddMemory(void *preallocatedMemory, int preallocatedMemorySize)

Allows you to add memory to a MemoryPool.

Items will be the same size as you initially asked for.

Parameters
  • preallocatedMemory: Pointer to the preallocated memory you are dedicating to this pool.

  • preallocatedMemorySize: How big is the buffer you are passing in.

void *Allocate()

Allocate an item from the pool.

Return

Pointer of the memory or NULL if the pool is empty.

void Free(void *item)

Returns the item back to it's pool.

Note

There is no checking that the item is actually valid to be returned to this pool.

Private Functions

void CalculateValidAlignment()

Adjusts and validates the alignment argument passed in the ctor.

void CalculateItemSize()

Calculate the true item size, based on alignment.

~MemoryPool()

To correctly delete a Memory Pool, we'd have to guarantee that all allocations had been returned to us. We side step this issue by making the destructor private so it can't be accessed.

Private Members

Mutex *Lock

Standard Mutex to allow thread safety.

int ItemSize

Save the item size for additions.

int Alignment

The overall alignment of an item.

std::list<void*> FreeItems

All of the real work is done with STL lists.

class cpp_freertos::MemoryPoolBadAlignmentException : public std::exception
#include <mem_pool.hpp>

This is the exception that is thrown if the Alignment argument is invalid.

Public Functions

inline MemoryPoolBadAlignmentException()

Create the exception.

inline virtual const char *what() const

Get what happened as a string. We are overriding the base implementation here.

Private Members

char errorString[80]

A text string representing what failed.

class cpp_freertos::MemoryPoolMallocException : public std::exception
#include <mem_pool.hpp>

This is the exception that is thrown if a MemoryPool malloc fails.

Public Functions

inline MemoryPoolMallocException()

Create the exception.

inline virtual const char *what() const

Get what happened as a string. We are overriding the base implementation here.

Private Members

char errorString[80]

A text string representing what failed.

struct MemPage

Public Members

u8 isInit
u8 intKey
u8 intKeyLeaf
Pgno pgno
u8 leaf
u8 hdrOffset
u8 childPtrSize
u8 max1bytePayload
u8 nOverflow
u16 maxLocal
u16 minLocal
u16 cellOffset
int nFree
u16 nCell
u16 maskPage
u16 aiOvfl[4]
u8 *apOvfl[4]
BtShared *pBt
u8 *aData
u8 *aDataEnd
u8 *aCellIdx
u8 *aDataOfst
DbPage *pDbPage
u16 (*xCellSize)(MemPage*, u8*)
void (*xParseCell)(MemPage*, u8*, CellInfo*)
struct MemStore

Public Members

sqlite3_int64 sz
sqlite3_int64 szAlloc
sqlite3_int64 szMax
unsigned char *aData
sqlite3_mutex *pMutex
int nMmap
unsigned mFlags
int nRdLock
int nWrLock
int nRef
char *zFName
union sqlite3_value::MemValue

Public Members

double r
i64 i
int nZero
const char *zPType
FuncDef *pDef
struct MergeEngine

Public Members

int nTree
SortSubtask *pTask
int *aTree
PmaReader *aReadr
struct Module

Public Members

const sqlite3_module *pModule
const char *zName
int nRefModule
void *pAux
void (*xDestroy)(void*)
Table *pEpoTab
struct mqttMessage_t

Public Members

uint8_t sent
char topic[MQTT_ROOT_TOPIC_LENGTH + MQTT_SENSOR_TOPIC_LENGTH]
char payload[MQTT_MESSAGE_LENGTH]
class cpp_freertos::Mutex
#include <mutex.hpp>

Base wrapper class around FreeRTOS's implementation of mutexes.

By definition, Mutexes can NOT be used from ISR contexts.

Note

It is expected that an application will instantiate one of the derived classes and use that object for synchronization. It is not expected that a user or application will derive from these classes.

Subclassed by cpp_freertos::MutexStandard

Public Functions

virtual bool Lock(TickType_t Timeout = portMAX_DELAY) = 0

Lock the Mutex.

Each type of Mutex implements it's own locking code as per the FreeRTOS API.

Return

true if the Lock was acquired, false if it timed out.

Parameters
  • Timeout: How long to wait to get the Lock until giving up.

virtual bool Unlock() = 0

Unlock the Mutex.

Return

true if the Lock was released, false if it failed. (Hint, if it fails, did you call Lock() first?)

virtual ~Mutex()

Our destructor

Protected Functions

Mutex()

This constructor should not be public.

Protected Attributes

SemaphoreHandle_t handle

FreeRTOS semaphore handle.

class cpp_freertos::MutexCreateException : public std::exception
#include <mutex.hpp>

This is the exception that is thrown if a Mutex constructor fails.

Public Functions

inline MutexCreateException()

Create the exception.

inline virtual const char *what() const

Get what happened as a string. We are overriding the base implementation here.

Private Members

char errorString[80]

A text string representing what failed.

class cpp_freertos::MutexStandard : public cpp_freertos::Mutex
#include <mutex.hpp>

Standard usage Mutex. By default calls to Lock these objects block forever, but this can be changed by simply passing in a argument to the Lock() method. These objects are not recursively acquirable. Calling Lock() twice from the same Thread (i.e. task) will deadlock.

Note

Standard mutexes use less resources than recursive mutexes. You should typically use this type of Mutex, unless you have a strong need for a MutexRecursive mutex.

Public Functions

MutexStandard()

Create a standard, non-recursize Mutex.

Exceptions
  • ThreadMutexException: on failure.

virtual bool Lock(TickType_t Timeout = portMAX_DELAY)

Lock the Mutex.

Return

true if the Lock was acquired, false if it timed out.

Parameters
  • Timeout: How long to wait to get the Lock until giving up.

virtual bool Unlock()

Unlock the Mutex.

Return

true if the Lock was released, false if it failed. (Hint, if it fails, did you call Lock() first?)

struct NameContext

Public Members

Parse *pParse
SrcList *pSrcList
ExprList *pEList
AggInfo *pAggInfo
Upsert *pUpsert
int iBaseReg
union NameContext::[anonymous] uNC
NameContext *pNext
int nRef
int nNcErr
int ncFlags
u32 nNestedSelect
Select *pWinSelect
struct NanInfName

Public Members

char c1
char c2
char n
char eType
char nRepl
char *zMatch
char *zRepl
struct NthValueCtx

Public Members

i64 nStep
sqlite3_value *pValue
struct NtileCtx

Public Members

i64 nTotal
i64 nParam
i64 iRow
struct observation_t
#include <i2c-opc.h>

Observations values for opc.

Observations values for temperature and humidity NOT USED / typedef struct { int32_t values[OBSERVATION_COUNT]; //!< buffer containing the mean values calculated on a one sample buffer respectively uint16_t count; //!< number of observations uint32_t *read_ptr; //!< reader pointer to buffer (read observations for calculate report value) uint32_t *write_ptr; //!< writer pointer to buffer (add new observation) } observation_t;.

/********************************************************************* TYPEDEF for Finite State Machine

struct OnOrUsing

Public Members

Expr *pOn
IdList *pUsing
union VdbeOp::p4union

Public Members

int i
void *p
char *z
i64 *pI64
double *pReal
FuncDef *pFunc
sqlite3_context *pCtx
CollSeq *pColl
Mem *pMem
VTable *pVtab
KeyInfo *pKeyInfo
u32 *ai
SubProgram *pProgram
Table *pTab
struct Pager

Public Members

sqlite3_vfs *pVfs
u8 exclusiveMode
u8 journalMode
u8 useJournal
u8 noSync
u8 fullSync
u8 extraSync
u8 syncFlags
u8 walSyncFlags
u8 tempFile
u8 noLock
u8 readOnly
u8 memDb
u8 memVfs
u8 eState
u8 eLock
u8 changeCountDone
u8 setSuper
u8 doNotSpill
u8 subjInMemory
u8 bUseFetch
u8 hasHeldSharedLock
Pgno dbSize
Pgno dbOrigSize
Pgno dbFileSize
Pgno dbHintSize
int errCode
int nRec
u32 cksumInit
u32 nSubRec
Bitvec *pInJournal
sqlite3_file *fd
sqlite3_file *jfd
sqlite3_file *sjfd
i64 journalOff
i64 journalHdr
sqlite3_backup *pBackup
PagerSavepoint *aSavepoint
int nSavepoint
u32 iDataVersion
char dbFileVers[16]
int nMmapOut
sqlite3_int64 szMmap
PgHdr *pMmapFreelist
u16 nExtra
i16 nReserve
u32 vfsFlags
u32 sectorSize
Pgno mxPgno
Pgno lckPgno
i64 pageSize
i64 journalSizeLimit
char *zFilename
char *zJournal
int (*xBusyHandler)(void*)
void *pBusyHandlerArg
u32 aStat[4]
void (*xReiniter)(DbPage*)
int (*xGet)(Pager*, Pgno, DbPage**, int)
char *pTmpSpace
PCache *pPCache
struct PagerSavepoint

Public Members

i64 iOffset
i64 iHdrOffset
Bitvec *pInSavepoint
Pgno nOrig
Pgno iSubRec
int bTruncateOnRelease
struct param

Public Members

uint8_t devicecode
uint8_t revision
uint8_t progtype
uint8_t parmode
uint8_t polling
uint8_t selftimed
uint8_t lockbytes
uint8_t fusebytes
uint8_t flashpoll
uint16_t eeprompoll
uint16_t pagesize
uint16_t eepromsize
uint32_t flashsize
struct Parse

Public Members

sqlite3 *db
char *zErrMsg
Vdbe *pVdbe
int rc
u8 colNamesSet
u8 checkSchema
u8 nested
u8 nTempReg
u8 isMultiWrite
u8 mayAbort
u8 hasCompound
u8 okConstFactor
u8 disableLookaside
u8 prepFlags
u8 withinRJSubrtn
u8 bHasWith
int nRangeReg
int iRangeReg
int nErr
int nTab
int nMem
int szOpAlloc
int iSelfTab
int nLabel
int nLabelAlloc
int *aLabel
ExprList *pConstExpr
IndexedExpr *pIdxEpr
IndexedExpr *pIdxPartExpr
Token constraintName
yDbMask writeMask
yDbMask cookieMask
int regRowid
int regRoot
int nMaxArg
int nSelect
u32 nProgressSteps
int nTableLock
TableLock *aTableLock
AutoincInfo *pAinc
Parse *pToplevel
Table *pTriggerTab
TriggerPrg *pTriggerPrg
ParseCleanup *pCleanup
int addrCrTab
Returning *pReturning
union Parse::[anonymous] u1
u32 oldmask
u32 newmask
LogEst nQueryLoop
u8 eTriggerOp
u8 bReturning
u8 eOrconf
u8 disableTriggers
int aTempReg[8]
Parse *pOuterParse
Token sNameToken
Token sLastToken
ynVar nVar
u8 iPkSortOrder
u8 explain
u8 eParseMode
int nVtabLock
int nHeight
int addrExplain
VList *pVList
Vdbe *pReprepare
const char *zTail
Table *pNewTable
Index *pNewIndex
Trigger *pNewTrigger
const char *zAuthContext
Token sArg
Table **apVtabLock
With *pWith
RenameToken *pRename
struct ParseCleanup

Public Members

ParseCleanup *pNext
void *pPtr
void (*xCleanup)(sqlite3*, void*)
struct PCache

Public Members

PgHdr *pDirty
PgHdr *pDirtyTail
PgHdr *pSynced
i64 nRefSum
int szCache
int szSpill
int szPage
int szExtra
u8 bPurgeable
u8 eCreate
int (*xStress)(void*, PgHdr*)
void *pStress
sqlite3_pcache *pCache
struct PCache1

Public Members

PGroup *pGroup
unsigned int *pnPurgeable
int szPage
int szExtra
int szAlloc
int bPurgeable
unsigned int nMin
unsigned int nMax
unsigned int n90pct
unsigned int iMaxKey
unsigned int nPurgeableDummy
unsigned int nRecyclable
unsigned int nPage
unsigned int nHash
PgHdr1 **apHash
PgHdr1 *pFree
void *pBulk
struct PCacheGlobal

Public Members

PGroup grp
int isInit
int separateCache
int nInitPage
int szSlot
int nSlot
int nReserve
void *pStart
void *pEnd
sqlite3_mutex *mutex
PgFreeslot *pFree
int nFreeSlot
int bUnderPressure
struct PgFreeslot

Public Members

PgFreeslot *pNext
struct PgHdr

Public Members

sqlite3_pcache_page *pPage
void *pData
void *pExtra
PCache *pCache
PgHdr *pDirty
Pager *pPager
Pgno pgno
u16 flags
i64 nRef
PgHdr *pDirtyNext
PgHdr *pDirtyPrev
struct PgHdr1

Public Members

sqlite3_pcache_page page
unsigned int iKey
u16 isBulkLocal
u16 isAnchor
PgHdr1 *pNext
PCache1 *pCache
PgHdr1 *pLruNext
PgHdr1 *pLruPrev
struct PGroup

Public Members

sqlite3_mutex *mutex
unsigned int nMaxPage
unsigned int nMinPage
unsigned int mxPinned
unsigned int nPurgeable
PgHdr1 lru
struct pm_value_t

Public Members

float sample

last sample

float med

average values of observations

float sigma

standard deviation of observations

struct PmaReader

Public Members

i64 iReadOff
i64 iEof
int nAlloc
int nKey
sqlite3_file *pFd
u8 *aAlloc
u8 *aKey
u8 *aBuffer
int nBuffer
u8 *aMap
IncrMerger *pIncr
struct PmaWriter

Public Members

int eFWErr
u8 *aBuffer
int nBuffer
int iBufStart
int iBufEnd
i64 iWriteOff
sqlite3_file *pFd
struct PragmaName

Public Members

const char *const zName
u8 ePragTyp
u8 mPragFlg
u8 iPragCName
u8 nPragCName
u64 iArg
struct PragmaVtab

Public Members

sqlite3_vtab base
sqlite3 *db
const PragmaName *pName
u8 nHidden
u8 iHidden
struct PragmaVtabCursor

Public Members

sqlite3_vtab_cursor base
sqlite3_stmt *pPragma
sqlite_int64 iRowid
char *azArg[2]
struct PreUpdate

Public Members

Vdbe *v
VdbeCursor *pCsr
int op
u8 *aRecord
KeyInfo keyinfo
UnpackedRecord *pUnpacked
UnpackedRecord *pNewUnpacked
int iNewReg
int iBlobWrite
i64 iKey1
i64 iKey2
Mem *aNew
Table *pTab
Index *pPk
struct PrintfArguments

Public Members

int nArg
int nUsed
sqlite3_value **apArg
struct publish_data_t

Public Members

int id
frtosLogging *logger
Queue *mqttqueue
Queue *dbqueue
BinaryQueue *recoveryqueue
publishStatus_t *status
station_t *station
WiFiClient *networkClient
struct publishStatus_t

Public Members

status_e connect

stato della connessione MQTT

status_e publish

stato della pubblicazione dati MQTT

class publishThread : public cpp_freertos::Thread

Public Functions

publishThread(publish_data_t *publish_data)
~publishThread()
virtual void Cleanup()

Protected Functions

virtual void Run()

Implementation of your actual thread code. You must override this function.

Note

If INCLUDE_vTaskDelete is defined, then you may return from your Run method. This will cause the task to be deleted from FreeRTOS, however you are still responsible to delete the task object. If this is not defined, then retuning from your Run() method will result in an assert.

bool mqttSubscribeRpc(char *comtopic)

Private Functions

bool mqttDisconnect()
bool mqttConnect(const bool cleanSession = true)
bool mqttPublish(const mqttMessage_t &mqtt_message, const bool retained)
bool publish_maint()
bool publish_constantdata()
void archive()
bool doPublish(mqttMessage_t &mqtt_message)

Private Members

publish_data_t *data
IPStack ipstack
MQTT::Client<IPStack, Countdown, MQTT_PACKET_SIZE, 1> mqttclient
class cpp_freertos::Queue
#include <queue.hpp>

Queue class wrapper for FreeRTOS queues. This class provides enqueue and dequeue operations.

Note

It is expected that an application will instantiate this class or one of the derived classes and use that. It is not expected that a user or application will derive from these classes.

Subclassed by cpp_freertos::BinaryQueue, cpp_freertos::Deque

Public Functions

Queue(UBaseType_t maxItems, UBaseType_t itemSize)

Our constructor.

Note

FreeRTOS queues use a memcpy / fixed size scheme for queues.

Exceptions
Parameters
  • maxItems: Maximum number of items this queue can hold.

  • itemSize: Size of an item in a queue.

virtual ~Queue()

Our destructor.

virtual bool Enqueue(const void *item)

Add an item to the back of the queue.

Return

true if the item was added, false if it was not.

Parameters
  • item: The item you are adding.

virtual bool Enqueue(const void *item, TickType_t Timeout)

Add an item to the back of the queue.

Return

true if the item was added, false if it was not.

Parameters
  • item: The item you are adding.

  • Timeout: How long to wait to add the item to the queue if the queue is currently full.

bool Dequeue(void *item, TickType_t Timeout = portMAX_DELAY)

Remove an item from the front of the queue.

Return

true if an item was removed, false if no item was removed.

Parameters
  • item: Where the item you are removing will be returned to.

  • Timeout: How long to wait to remove an item if the queue is currently empty.

bool Peek(void *item, TickType_t Timeout = portMAX_DELAY)

Make a copy of an item from the front of the queue. This will not remove it from the head of the queue.

Return

true if an item was copied, false if no item was copied.

Parameters
  • item: Where the item you are removing will be returned to.

  • Timeout: How long to wait to remove an item if the queue is currently empty.

virtual bool EnqueueFromISR(const void *item, BaseType_t *pxHigherPriorityTaskWoken)

Add an item to the back of the queue in ISR context.

Return

true if the item was added, false if it was not.

Parameters
  • item: The item you are adding.

  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

bool DequeueFromISR(void *item, BaseType_t *pxHigherPriorityTaskWoken)

Remove an item from the front of the queue in ISR context.

Return

true if an item was removed, false if no item was removed.

Parameters
  • item: Where the item you are removing will be returned to.

  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

bool PeekFromISR(void *item)

Make a copy of an item from the front of the queue. This will not remove it from the head of the queue.

Return

true if an item was copied, false if no item was copied.

Parameters
  • item: Where the item you are removing will be returned to.

bool IsEmpty()

Is the queue empty?

Return

true if the queue was empty when this was called, false if the queue was not empty.

bool IsFull()

Is the queue full?

Return

true if the queue was full when this was called, false if the queue was not full.

void Flush()

Remove all objects from the queue.

UBaseType_t NumItems()

How many items are currently in the queue.

Return

the number of items in the queue.

UBaseType_t NumSpacesLeft()

How many empty spaves are currently left in the queue.

Return

the number of remaining spaces.

Protected Attributes

QueueHandle_t handle

FreeRTOS queue handle.

class cpp_freertos::QueueCreateException : public std::exception
#include <queue.hpp>

This is the exception that is thrown if a Queue constructor fails.

Public Functions

inline QueueCreateException()

Create the exception.

inline explicit QueueCreateException(const char *info)

Create the exception.

inline virtual const char *what() const

Get what happened as a string. We are overriding the base implementation here.

Private Members

char errorString[80]

A text string representing what failed.

struct RCStr

Public Members

u64 nRCRef
struct readable_data_t
#include <i2c-leaf.h>

Readable data through i2c bus.

Public Members

uint8_t module_type

module type

module version

uint8_t module_main_version

module main version

uint8_t module_minor_version

module minor version

leaf_wetness_t leaf_wetness

leaf wetness data for report

uint8_t module_version

module type

float pm_sample[OPCXX_PM_LENGTH]
float pm_med[OPCXX_PM_LENGTH]
float pm_sigma[OPCXX_PM_LENGTH]
uint16_t bins_med[OPCN3_BINS_LENGTH]
uint16_t bins_sigma[OPCN3_BINS_LENGTH]
pm_value_t pm1

pm1 data for report

pm_value_t pm25

pm25 data for report

pm_value_t pm10

pm10 data for report

bin_value_t bins[OPC_BINS_LENGTH]

bins array data for report

data_t power
data_t solar_radiation
rain_t rain

rain data

value_t temperature

temperature data for report

value_t humidity

humidity data for report

report_t thr
report_t wind
class cpp_freertos::ReadWriteLock
#include <read_write_lock.hpp>

Abstract base class encapsulating a Reader/Writer lock.

These locks are based on mutexs and cannot be used in any way from ISR context. Likewise, these locks block indefinitely.

Note

It is expected that an application will instantiate one of the derived classes and use that object for synchronization. It is not expected that a user or application will derive from these classes.

Subclassed by cpp_freertos::ReadWriteLockPreferReader, cpp_freertos::ReadWriteLockPreferWriter

Public Functions

ReadWriteLock()

Constructor

Exceptions

virtual ~ReadWriteLock()

Destructor

virtual void ReaderLock() = 0

Take the lock as a Reader. This allows multiple reader access.

virtual void ReaderUnlock() = 0

Unlock the Reader.

virtual void WriterLock() = 0

Take the lock as a Writer. This allows only one thread access.

virtual void WriterUnlock() = 0

Unlock the Writer.

Protected Attributes

int ReadCount

How many active readers are there.

SemaphoreHandle_t ReadLock

Protect ReadCount.

SemaphoreHandle_t ResourceLock

Protect this resource from multiple writer access, or from Reader access when a writer is changing something.

class cpp_freertos::ReadWriteLockCreateException : public std::exception
#include <read_write_lock.hpp>

This is the exception that is thrown if a ReadWriteLock constructor fails.

Public Functions

inline ReadWriteLockCreateException()

Create the exception.

inline virtual const char *what() const

Get what happened as a string. We are overriding the base implementation here.

Private Members

char errorString[80]

A text string representing what failed.

class cpp_freertos::ReadWriteLockPreferReader : public cpp_freertos::ReadWriteLock
#include <read_write_lock.hpp>

Concrete derived class that implements a Reader/Writer lock that favors the Readers. That is, with enough aggressive readers, a Writer may starve.

Public Functions

virtual void ReaderLock()

Take the lock as a Reader. This allows multiple reader access.

virtual void ReaderUnlock()

Unlock the Reader.

virtual void WriterLock()

Take the lock as a Writer. This allows only one thread access.

virtual void WriterUnlock()

Unlock the Writer.

class cpp_freertos::ReadWriteLockPreferWriter : public cpp_freertos::ReadWriteLock
#include <read_write_lock.hpp>

Concrete derived class that implements a Reader/Writer lock that favors the Writers. That is, with enough aggressive writers, a Reader may starve.

Public Functions

ReadWriteLockPreferWriter()

Our derived constructor.

virtual ~ReadWriteLockPreferWriter()

Our derived destructor.

virtual void ReaderLock()

Take the lock as a Reader. This allows multiple reader access.

virtual void ReaderUnlock()

Unlock the Reader.

virtual void WriterLock()

Take the lock as a Writer. This allows only one thread access.

virtual void WriterUnlock()

Unlock the Writer.

Private Members

int WriteCount

Number of Writers waiting for the Resource Lock, including any current Writer already holdign it.

SemaphoreHandle_t WriteLock

Protect WriteCount.

SemaphoreHandle_t BlockReadersLock

Lock to stop reader threads from starving a Writer.

struct RefSrcList

Public Members

sqlite3 *db
SrcList *pRef
i64 nExclude
int *aiExclude
struct RenameCtx

Public Members

RenameToken *pList
int nList
int iCol
Table *pTab
const char *zOld
struct RenameToken

Public Members

const void *p
Token t
RenameToken *pNext
struct report_t
#include <i2c-power.h>

report data.

Public Members

float rain_tips
float rain
float sample_temperature
float sample_humidity
float ist_temperature
float ist_humidity
float min_temperature
float min_humidity
float avg_temperature
float avg_humidity
float max_temperature
float max_humidity
float sigma_temperature
float sigma_humidity
uint16_t sample_speed
uint16_t sample_direction
uint16_t vavg10_speed
uint16_t vavg10_direction
uint16_t vavg_speed
uint16_t vavg_direction
uint16_t peak_gust_speed
uint16_t long_gust_speed
uint16_t avg_speed
uint8_t class_1
uint8_t class_2
uint8_t class_3
uint8_t class_4
uint8_t class_5
uint8_t class_6
uint16_t peak_gust_direction
uint16_t long_gust_direction
struct Returning

Public Members

Parse *pParse
ExprList *pReturnEL
Trigger retTrig
TriggerStep retTStep
int iRetCur
int nRetCol
int iRetReg
char zName[40]
struct ReusableSpace

Public Members

u8 *pSpace
sqlite3_int64 nFree
sqlite3_int64 nNeeded
struct RowLoadInfo

Public Members

int regResult
u8 ecelFlags
struct RowSet

Public Members

struct RowSetChunk *pChunk
sqlite3 *db
struct RowSetEntry *pEntry
struct RowSetEntry *pLast
struct RowSetEntry *pFresh
struct RowSetEntry *pForest
u16 nFresh
u16 rsFlags
int iBatch
struct RowSetChunk

Public Members

struct RowSetChunk *pNextChunk
struct RowSetEntry aEntry[ROWSET_ENTRY_PER_CHUNK]
struct RowSetEntry

Public Members

i64 v
struct RowSetEntry *pRight
struct RowSetEntry *pLeft
struct rpcRecovery_t

Public Members

char dtstart[20]
char dtend[20]
struct sample_t
#include <i2c-opc.h>

Samples values for measured opc data.

samples data

Public Members

float values

buffer containing the measured samples

uint8_t count

number of good samples

samples counter

uint8_t error_count

number of bad samples

int32_t values[SAMPLES_COUNT_MAX]

samples buffer

uint16_t count

samples counter

int32_t *read_ptr

reader pointer

int32_t *write_ptr

writer pointer

float value[SAMPLES_COUNT]

samples buffer

float *read_ptr

reader pointer

float *write_ptr

writer pointer

struct Savepoint

Public Members

char *zName
i64 nDeferredCons
i64 nDeferredImmCons
Savepoint *pNext
struct ScanStatus

Public Members

int addrExplain
int aAddrRange[6]
int addrLoop
int addrVisit
int iSelectID
LogEst nEst
char *zName
struct Schema

Public Members

int schema_cookie
int iGeneration
Hash tblHash
Hash idxHash
Hash trigHash
Hash fkeyHash
Table *pSeqTab
u8 file_format
u8 enc
u16 schemaFlags
int cache_size
struct FKey::sColMap

Public Members

int iFrom
char *zCol
struct Select

Public Members

u8 op
LogEst nSelectRow
u32 selFlags
int iLimit
int iOffset
u32 selId
int addrOpenEphm[2]
ExprList *pEList
SrcList *pSrc
Expr *pWhere
ExprList *pGroupBy
Expr *pHaving
ExprList *pOrderBy
Select *pPrior
Select *pNext
Expr *pLimit
With *pWith
Window *pWin
Window *pWinDefn
struct SelectDest

Public Members

u8 eDest
int iSDParm
int iSDParm2
int iSdst
int nSdst
char *zAffSdst
ExprList *pOrderBy
class cpp_freertos::Semaphore
#include <semaphore.hpp>

Base wrapper class around FreeRTOS's implementation of semaphores.

It is not expected that an application will derive from this class.

Note that we distinguish between Semaphore, Binary Semaphores, Counting Semaphores, and Mutexes. Mutexes, while implemented as a kind of semaphore in FreeRTOS, are conceptually very different in use and behavior from semaphores. We acknowledge this difference in the class heirarchy, implementing mutextes as a completely different class heirarchy.

Subclassed by cpp_freertos::BinarySemaphore, cpp_freertos::CountingSemaphore

Public Functions

bool Take(TickType_t Timeout = portMAX_DELAY)

Aquire (take) a semaphore.

Example of blocking indefinitely: aSemaphore.Take();

Example of blocking for 100 ticks: aSemaphore.Take(100);

Return

true if the Semaphore was acquired, false if it timed out.

Parameters
  • Timeout: How long to wait to get the Lock until giving up.

bool Give()

Release (give) a semaphore.

Return

true if the Semaphore was released, false if it failed.

bool TakeFromISR(BaseType_t *pxHigherPriorityTaskWoken)

Aquire (take) a semaphore from ISR context.

Return

true if the Semaphore was acquired, false if it timed out.

Parameters
  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

bool GiveFromISR(BaseType_t *pxHigherPriorityTaskWoken)

Release (give) a semaphore from ISR context.

Return

true if the Semaphore was released, false if it failed.

Parameters
  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

virtual ~Semaphore()

Our destructor

Protected Functions

Semaphore()

We do not want a Semaphore ctor. This class should never be directly created, this is a base class only.

Protected Attributes

SemaphoreHandle_t handle

FreeRTOS semaphore handle.

class cpp_freertos::SemaphoreCreateException : public std::exception
#include <semaphore.hpp>

This is the exception that is thrown if a Semaphore constructor fails.

Public Functions

inline SemaphoreCreateException()

Create the exception.

inline explicit SemaphoreCreateException(const char *info)

Create the exception.

inline virtual const char *what() const

Get what happened as a string. We are overriding the base implementation here.

Private Members

char errorString[80]

A text string representing what failed.

struct sensor_conf_t

Public Members

char type[4]

sensor type

uint8_t i2c_address

i2c address of sensor

struct sensor_t
#include <i2c-th.h>

sensors configuration.

Public Functions

inline sensor_t()

Public Members

char driver[SENSORDRIVER_DRIVER_LEN]
int node
char type[SENSORDRIVER_TYPE_LEN]
int address
char timerange[SENSORDRIVER_META_LEN]
char level[SENSORDRIVER_META_LEN]
struct sensordata_t
#include <sensor_config.h>

constant station data (station name, station height ...) parameters.

struct SortCtx

Public Members

ExprList *pOrderBy
int nOBSat
int iECursor
int regReturn
int labelBkOut
int addrSortIndex
int labelDone
int labelOBLopt
u8 sortFlags
struct RowLoadInfo *pDeferredRowLoad
struct SorterFile

Public Members

sqlite3_file *pFd
i64 iEof
struct SorterList

Public Members

SorterRecord *pList
u8 *aMemory
i64 szPMA
struct SorterRecord

Public Members

int nVal
SorterRecord *pNext
int iNext
union SorterRecord::[anonymous] u
struct SortSubtask

Public Members

SQLiteThread *pThread
int bDone
int nPMA
VdbeSorter *pSorter
UnpackedRecord *pUnpacked
SorterList list
SorterCompare xCompare
SorterFile file
SorterFile file2
class SPISettings

Public Functions

inline SPISettings(uint32_t clock, uint8_t bitOrder, uint8_t dataMode)
inline uint32_t getClockFreq() const

Private Members

uint32_t clockFreq
struct sqlite3

Public Members

sqlite3_vfs *pVfs
struct Vdbe *pVdbe
CollSeq *pDfltColl
sqlite3_mutex *mutex
Db *aDb
int nDb
u32 mDbFlags
u64 flags
i64 lastRowid
i64 szMmap
u32 nSchemaLock
unsigned int openFlags
int errCode
int errByteOffset
int errMask
int iSysErrno
u32 dbOptFlags
u8 enc
u8 autoCommit
u8 temp_store
u8 mallocFailed
u8 bBenignMalloc
u8 dfltLockMode
signed char nextAutovac
u8 suppressErr
u8 vtabOnConflict
u8 isTransactionSavepoint
u8 mTrace
u8 noSharedCache
u8 nSqlExec
u8 eOpenState
int nextPagesize
i64 nChange
i64 nTotalChange
int aLimit[SQLITE_N_LIMIT]
int nMaxSorterMmap
struct sqlite3::sqlite3InitInfo init
int nVdbeActive
int nVdbeRead
int nVdbeWrite
int nVdbeExec
int nVDestroy
int nExtension
void **aExtension
void (*xLegacy)(void*, const char*)
int (*xV2)(u32, void*, void*, void*)
union sqlite3::[anonymous] trace
void *pTraceArg
void (*xProfile)(void*, const char*, u64)
void *pProfileArg
void *pCommitArg
int (*xCommitCallback)(void*)
void *pRollbackArg
void (*xRollbackCallback)(void*)
void *pUpdateArg
void (*xUpdateCallback)(void*, int, const char*, const char*, sqlite_int64)
void *pAutovacPagesArg
void (*xAutovacDestr)(void*)
unsigned int (*xAutovacPages)(void*, const char*, u32, u32, u32)
Parse *pParse
void (*xCollNeeded)(void*, sqlite3*, int eTextRep, const char*)
void (*xCollNeeded16)(void*, sqlite3*, int eTextRep, const void*)
void *pCollNeededArg
sqlite3_value *pErr
int isInterrupted
double notUsed1
union sqlite3::[anonymous] u1
Lookaside lookaside
sqlite3_xauth xAuth
void *pAuthArg
int (*xProgress)(void*)
void *pProgressArg
unsigned nProgressOps
int nVTrans
Hash aModule
VtabCtx *pVtabCtx
VTable **aVTrans
VTable *pDisconnect
Hash aFunc
Hash aCollSeq
BusyHandler busyHandler
Db aDbStatic[2]
Savepoint *pSavepoint
int nAnalysisLimit
int busyTimeout
int nSavepoint
int nStatement
i64 nDeferredCons
i64 nDeferredImmCons
int *pnBytesFreed
DbClientData *pDbData
struct sqlite3_api_routines

Public Members

void *(*aggregate_context)(sqlite3_context*, int nBytes)
int (*aggregate_count)(sqlite3_context*)
int (*bind_blob)(sqlite3_stmt*, int, const void*, int n, void (*)(void*))
int (*bind_double)(sqlite3_stmt*, int, double)
int (*bind_int)(sqlite3_stmt*, int, int)
int (*bind_int64)(sqlite3_stmt*, int, sqlite_int64)
int (*bind_null)(sqlite3_stmt*, int)
int (*bind_parameter_count)(sqlite3_stmt*)
int (*bind_parameter_index)(sqlite3_stmt*, const char *zName)
const char *(*bind_parameter_name)(sqlite3_stmt*, int)
int (*bind_text)(sqlite3_stmt*, int, const char*, int n, void (*)(void*))
int (*bind_text16)(sqlite3_stmt*, int, const void*, int, void (*)(void*))
int (*bind_value)(sqlite3_stmt*, int, const sqlite3_value*)
int (*busy_handler)(sqlite3*, int (*)(void*, int), void*, )
int (*busy_timeout)(sqlite3*, int ms)
int (*changes)(sqlite3*)
int (*close)(sqlite3*)
int (*collation_needed)(sqlite3*, void*, void (*)(void*, sqlite3*, int eTextRep, const char*))
int (*collation_needed16)(sqlite3*, void*, void (*)(void*, sqlite3*, int eTextRep, const void*))
const void *(*column_blob)(sqlite3_stmt*, int iCol)
int (*column_bytes)(sqlite3_stmt*, int iCol)
int (*column_bytes16)(sqlite3_stmt*, int iCol)
int (*column_count)(sqlite3_stmt *pStmt)
const char *(*column_database_name)(sqlite3_stmt*, int)
const void *(*column_database_name16)(sqlite3_stmt*, int)
const char *(*column_decltype)(sqlite3_stmt*, int i)
const void *(*column_decltype16)(sqlite3_stmt*, int)
double (*column_double)(sqlite3_stmt*, int iCol)
int (*column_int)(sqlite3_stmt*, int iCol)
sqlite_int64 (*column_int64)(sqlite3_stmt*, int iCol)
const char *(*column_name)(sqlite3_stmt*, int)
const void *(*column_name16)(sqlite3_stmt*, int)
const char *(*column_origin_name)(sqlite3_stmt*, int)
const void *(*column_origin_name16)(sqlite3_stmt*, int)
const char *(*column_table_name)(sqlite3_stmt*, int)
const void *(*column_table_name16)(sqlite3_stmt*, int)
const unsigned char *(*column_text)(sqlite3_stmt*, int iCol)
const void *(*column_text16)(sqlite3_stmt*, int iCol)
int (*column_type)(sqlite3_stmt*, int iCol)
sqlite3_value *(*column_value)(sqlite3_stmt*, int iCol)
void *(*commit_hook)(sqlite3*, int (*)(void*), void*, )
int (*complete)(const char *sql)
int (*complete16)(const void *sql)
int (*create_collation)(sqlite3*, const char*, int, void*, int (*)(void*, int, const void*, int, const void*))
int (*create_collation16)(sqlite3*, const void*, int, void*, int (*)(void*, int, const void*, int, const void*))
int (*create_function)(sqlite3*, const char*, int, int, void*, void (*xFunc)(sqlite3_context*, int, sqlite3_value**), void (*xStep)(sqlite3_context*, int, sqlite3_value**), void (*xFinal)(sqlite3_context*))
int (*create_function16)(sqlite3*, const void*, int, int, void*, void (*xFunc)(sqlite3_context*, int, sqlite3_value**), void (*xStep)(sqlite3_context*, int, sqlite3_value**), void (*xFinal)(sqlite3_context*))
int (*create_module)(sqlite3*, const char*, const sqlite3_module*, void*)
int (*data_count)(sqlite3_stmt *pStmt)
sqlite3 *(*db_handle)(sqlite3_stmt*)
int (*declare_vtab)(sqlite3*, const char*)
int (*enable_shared_cache)(int)
int (*errcode)(sqlite3 *db)
const char *(*errmsg)(sqlite3*)
const void *(*errmsg16)(sqlite3*)
int (*exec)(sqlite3*, const char*, sqlite3_callback, void*, char**)
int (*expired)(sqlite3_stmt*)
int (*finalize)(sqlite3_stmt *pStmt)
void (*free)(void*)
void (*free_table)(char **result)
int (*get_autocommit)(sqlite3*)
void *(*get_auxdata)(sqlite3_context*, int)
int (*get_table)(sqlite3*, const char*, char***, int*, int*, char**)
int (*global_recover)(void)
void (*interruptx)(sqlite3*)
sqlite_int64 (*last_insert_rowid)(sqlite3*)
const char *(*libversion)(void)
int (*libversion_number)(void)
void *(*malloc)(int)
char *(*mprintf)(const char*, ...)
int (*open)(const char*, sqlite3**)
int (*open16)(const void*, sqlite3**)
int (*prepare)(sqlite3*, const char*, int, sqlite3_stmt**, const char**)
int (*prepare16)(sqlite3*, const void*, int, sqlite3_stmt**, const void**)
void *(*profile)(sqlite3*, void (*)(void*, const char*, sqlite_uint64), void*, )
void (*progress_handler)(sqlite3*, int, int (*)(void*), void*, )
void *(*realloc)(void*, int)
int (*reset)(sqlite3_stmt *pStmt)
void (*result_blob)(sqlite3_context*, const void*, int, void (*)(void*))
void (*result_double)(sqlite3_context*, double)
void (*result_error)(sqlite3_context*, const char*, int)
void (*result_error16)(sqlite3_context*, const void*, int)
void (*result_int)(sqlite3_context*, int)
void (*result_int64)(sqlite3_context*, sqlite_int64)
void (*result_null)(sqlite3_context*)
void (*result_text)(sqlite3_context*, const char*, int, void (*)(void*))
void (*result_text16)(sqlite3_context*, const void*, int, void (*)(void*))
void (*result_text16be)(sqlite3_context*, const void*, int, void (*)(void*))
void (*result_text16le)(sqlite3_context*, const void*, int, void (*)(void*))
void (*result_value)(sqlite3_context*, sqlite3_value*)
void *(*rollback_hook)(sqlite3*, void (*)(void*), void*, )
int (*set_authorizer)(sqlite3*, int (*)(void*, int, const char*, const char*, const char*, const char*), void*, )
void (*set_auxdata)(sqlite3_context*, int, void*, void (*)(void*))
char *(*xsnprintf)(int, char*, const char*, ...)
int (*step)(sqlite3_stmt*)
int (*table_column_metadata)(sqlite3*, const char*, const char*, const char*, char const**, char const**, int*, int*, int*)
void (*thread_cleanup)(void)
int (*total_changes)(sqlite3*)
void *(*trace)(sqlite3*, void (*xTrace)(void*, const char*), void*, )
int (*transfer_bindings)(sqlite3_stmt*, sqlite3_stmt*)
void *(*update_hook)(sqlite3*, void (*)(void*, int, char const*, char const*, sqlite_int64), void*, )
void *(*user_data)(sqlite3_context*)
const void *(*value_blob)(sqlite3_value*)
int (*value_bytes)(sqlite3_value*)
int (*value_bytes16)(sqlite3_value*)
double (*value_double)(sqlite3_value*)
int (*value_int)(sqlite3_value*)
sqlite_int64 (*value_int64)(sqlite3_value*)
int (*value_numeric_type)(sqlite3_value*)
const unsigned char *(*value_text)(sqlite3_value*)
const void *(*value_text16)(sqlite3_value*)
const void *(*value_text16be)(sqlite3_value*)
const void *(*value_text16le)(sqlite3_value*)
int (*value_type)(sqlite3_value*)
char *(*vmprintf)(const char*, va_list)
int (*overload_function)(sqlite3*, const char *zFuncName, int nArg)
int (*prepare_v2)(sqlite3*, const char*, int, sqlite3_stmt**, const char**)
int (*prepare16_v2)(sqlite3*, const void*, int, sqlite3_stmt**, const void**)
int (*clear_bindings)(sqlite3_stmt*)
int (*create_module_v2)(sqlite3*, const char*, const sqlite3_module*, void*, void (*xDestroy)(void*))
int (*bind_zeroblob)(sqlite3_stmt*, int, int)
int (*blob_bytes)(sqlite3_blob*)
int (*blob_close)(sqlite3_blob*)
int (*blob_open)(sqlite3*, const char*, const char*, const char*, sqlite3_int64, int, sqlite3_blob**)
int (*blob_read)(sqlite3_blob*, void*, int, int)
int (*blob_write)(sqlite3_blob*, const void*, int, int)
int (*create_collation_v2)(sqlite3*, const char*, int, void*, int (*)(void*, int, const void*, int, const void*), void (*)(void*))
int (*file_control)(sqlite3*, const char*, int, void*)
sqlite3_int64 (*memory_highwater)(int)
sqlite3_int64 (*memory_used)(void)
sqlite3_mutex *(*mutex_alloc)(int)
void (*mutex_enter)(sqlite3_mutex*)
void (*mutex_free)(sqlite3_mutex*)
void (*mutex_leave)(sqlite3_mutex*)
int (*mutex_try)(sqlite3_mutex*)
int (*open_v2)(const char*, sqlite3**, int, const char*)
int (*release_memory)(int)
void (*result_error_nomem)(sqlite3_context*)
void (*result_error_toobig)(sqlite3_context*)
int (*sleep)(int)
void (*soft_heap_limit)(int)
sqlite3_vfs *(*vfs_find)(const char*)
int (*vfs_register)(sqlite3_vfs*, int)
int (*vfs_unregister)(sqlite3_vfs*)
int (*xthreadsafe)(void)
void (*result_zeroblob)(sqlite3_context*, int)
void (*result_error_code)(sqlite3_context*, int)
int (*test_control)(int, ...)
void (*randomness)(int, void*)
sqlite3 *(*context_db_handle)(sqlite3_context*)
int (*extended_result_codes)(sqlite3*, int)
int (*limit)(sqlite3*, int, int)
sqlite3_stmt *(*next_stmt)(sqlite3*, sqlite3_stmt*)
const char *(*sql)(sqlite3_stmt*)
int (*status)(int, int*, int*, int)
int (*backup_finish)(sqlite3_backup*)
sqlite3_backup *(*backup_init)(sqlite3*, const char*, sqlite3*, const char*)
int (*backup_pagecount)(sqlite3_backup*)
int (*backup_remaining)(sqlite3_backup*)
int (*backup_step)(sqlite3_backup*, int)
const char *(*compileoption_get)(int)
int (*compileoption_used)(const char*)
int (*create_function_v2)(sqlite3*, const char*, int, int, void*, void (*xFunc)(sqlite3_context*, int, sqlite3_value**), void (*xStep)(sqlite3_context*, int, sqlite3_value**), void (*xFinal)(sqlite3_context*), void (*xDestroy)(void*))
int (*db_config)(sqlite3*, int, ...)
sqlite3_mutex *(*db_mutex)(sqlite3*)
int (*db_status)(sqlite3*, int, int*, int*, int)
int (*extended_errcode)(sqlite3*)
void (*log)(int, const char*, ...)
sqlite3_int64 (*soft_heap_limit64)(sqlite3_int64)
const char *(*sourceid)(void)
int (*stmt_status)(sqlite3_stmt*, int, int)
int (*strnicmp)(const char*, const char*, int)
int (*unlock_notify)(sqlite3*, void (*)(void**, int), void*, )
int (*wal_autocheckpoint)(sqlite3*, int)
int (*wal_checkpoint)(sqlite3*, const char*)
void *(*wal_hook)(sqlite3*, int (*)(void*, sqlite3*, const char*, int), void*, )
int (*blob_reopen)(sqlite3_blob*, sqlite3_int64)
int (*vtab_config)(sqlite3*, int op, ...)
int (*vtab_on_conflict)(sqlite3*)
int (*close_v2)(sqlite3*)
const char *(*db_filename)(sqlite3*, const char*)
int (*db_readonly)(sqlite3*, const char*)
int (*db_release_memory)(sqlite3*)
const char *(*errstr)(int)
int (*stmt_busy)(sqlite3_stmt*)
int (*stmt_readonly)(sqlite3_stmt*)
int (*stricmp)(const char*, const char*)
int (*uri_boolean)(const char*, const char*, int)
sqlite3_int64 (*uri_int64)(const char*, const char*, sqlite3_int64)
const char *(*uri_parameter)(const char*, const char*)
char *(*xvsnprintf)(int, char*, const char*, va_list)
int (*wal_checkpoint_v2)(sqlite3*, const char*, int, int*, int*)
int (*auto_extension)(void (*)(void))
int (*bind_blob64)(sqlite3_stmt*, int, const void*, sqlite3_uint64, void (*)(void*))
int (*bind_text64)(sqlite3_stmt*, int, const char*, sqlite3_uint64, void (*)(void*), unsigned char, )
int (*cancel_auto_extension)(void (*)(void))
int (*load_extension)(sqlite3*, const char*, const char*, char**)
void *(*malloc64)(sqlite3_uint64)
sqlite3_uint64 (*msize)(void*)
void *(*realloc64)(void*, sqlite3_uint64)
void (*reset_auto_extension)(void)
void (*result_blob64)(sqlite3_context*, const void*, sqlite3_uint64, void (*)(void*))
void (*result_text64)(sqlite3_context*, const char*, sqlite3_uint64, void (*)(void*), unsigned char, )
int (*strglob)(const char*, const char*)
sqlite3_value *(*value_dup)(const sqlite3_value*)
void (*value_free)(sqlite3_value*)
int (*result_zeroblob64)(sqlite3_context*, sqlite3_uint64)
int (*bind_zeroblob64)(sqlite3_stmt*, int, sqlite3_uint64)
unsigned int (*value_subtype)(sqlite3_value*)
void (*result_subtype)(sqlite3_context*, unsigned int)
int (*status64)(int, sqlite3_int64*, sqlite3_int64*, int)
int (*strlike)(const char*, const char*, unsigned int)
int (*db_cacheflush)(sqlite3*)
int (*system_errno)(sqlite3*)
int (*trace_v2)(sqlite3*, unsigned, int (*)(unsigned, void*, void*, void*), void*, )
char *(*expanded_sql)(sqlite3_stmt*)
void (*set_last_insert_rowid)(sqlite3*, sqlite3_int64)
int (*prepare_v3)(sqlite3*, const char*, int, unsigned int, sqlite3_stmt**, const char**)
int (*prepare16_v3)(sqlite3*, const void*, int, unsigned int, sqlite3_stmt**, const void**)
int (*bind_pointer)(sqlite3_stmt*, int, void*, const char*, void (*)(void*))
void (*result_pointer)(sqlite3_context*, void*, const char*, void (*)(void*))
void *(*value_pointer)(sqlite3_value*, const char*)
int (*vtab_nochange)(sqlite3_context*)
int (*value_nochange)(sqlite3_value*)
const char *(*vtab_collation)(sqlite3_index_info*, int)
int (*keyword_count)(void)
int (*keyword_name)(int, const char**, int*)
int (*keyword_check)(const char*, int)
sqlite3_str *(*str_new)(sqlite3*)
char *(*str_finish)(sqlite3_str*)
void (*str_appendf)(sqlite3_str*, const char *zFormat, ...)
void (*str_vappendf)(sqlite3_str*, const char *zFormat, va_list)
void (*str_append)(sqlite3_str*, const char *zIn, int N)
void (*str_appendall)(sqlite3_str*, const char *zIn)
void (*str_appendchar)(sqlite3_str*, int N, char C)
void (*str_reset)(sqlite3_str*)
int (*str_errcode)(sqlite3_str*)
int (*str_length)(sqlite3_str*)
char *(*str_value)(sqlite3_str*)
int (*create_window_function)(sqlite3*, const char*, int, int, void*, void (*xStep)(sqlite3_context*, int, sqlite3_value**), void (*xFinal)(sqlite3_context*), void (*xValue)(sqlite3_context*), void (*xInv)(sqlite3_context*, int, sqlite3_value**), void (*xDestroy)(void*))
const char *(*normalized_sql)(sqlite3_stmt*)
int (*stmt_isexplain)(sqlite3_stmt*)
int (*value_frombind)(sqlite3_value*)
int (*drop_modules)(sqlite3*, const char**)
sqlite3_int64 (*hard_heap_limit64)(sqlite3_int64)
const char *(*uri_key)(const char*, int)
const char *(*filename_database)(const char*)
const char *(*filename_journal)(const char*)
const char *(*filename_wal)(const char*)
const char *(*create_filename)(const char*, const char*, const char*, int, const char**)
void (*free_filename)(const char*)
sqlite3_file *(*database_file_object)(const char*)
int (*txn_state)(sqlite3*, const char*)
sqlite3_int64 (*changes64)(sqlite3*)
sqlite3_int64 (*total_changes64)(sqlite3*)
int (*autovacuum_pages)(sqlite3*, unsigned int (*)(void*, const char*, unsigned int, unsigned int, unsigned int), void*, void (*)(void*))
int (*error_offset)(sqlite3*)
int (*vtab_rhs_value)(sqlite3_index_info*, int, sqlite3_value**)
int (*vtab_distinct)(sqlite3_index_info*)
int (*vtab_in)(sqlite3_index_info*, int, int)
int (*vtab_in_first)(sqlite3_value*, sqlite3_value**)
int (*vtab_in_next)(sqlite3_value*, sqlite3_value**)
int (*deserialize)(sqlite3*, const char*, unsigned char*, sqlite3_int64, sqlite3_int64, unsigned)
unsigned char *(*serialize)(sqlite3*, const char*, sqlite3_int64*, unsigned int)
const char *(*db_name)(sqlite3*, int)
int (*value_encoding)(sqlite3_value*)
int (*is_interrupted)(sqlite3*)
int (*stmt_explain)(sqlite3_stmt*, int)
void *(*get_clientdata)(sqlite3*, const char*)
int (*set_clientdata)(sqlite3*, const char*, void*, void (*)(void*))
struct sqlite3_backup

Public Members

sqlite3 *pDestDb
Btree *pDest
u32 iDestSchema
int bDestLocked
Pgno iNext
sqlite3 *pSrcDb
Btree *pSrc
int rc
Pgno nRemaining
Pgno nPagecount
int isAttached
sqlite3_backup *pNext
struct sqlite3_context

Public Members

Mem *pOut
FuncDef *pFunc
Mem *pMem
Vdbe *pVdbe
int iOp
int isError
u8 enc
u8 skipFlag
u8 argc
sqlite3_value *argv[1]
struct sqlite3_file

Public Members

const struct sqlite3_io_methods *pMethods
struct sqlite3_index_info::sqlite3_index_constraint

Public Members

int iColumn
unsigned char op
unsigned char usable
int iTermOffset
struct sqlite3_index_info::sqlite3_index_constraint_usage

Public Members

int argvIndex
unsigned char omit
struct sqlite3_index_info

Public Members

int nConstraint
struct sqlite3_index_info::sqlite3_index_constraint *aConstraint
int nOrderBy
struct sqlite3_index_info::sqlite3_index_orderby *aOrderBy
struct sqlite3_index_info::sqlite3_index_constraint_usage *aConstraintUsage
int idxNum
char *idxStr
int needToFreeIdxStr
int orderByConsumed
double estimatedCost
sqlite3_int64 estimatedRows
int idxFlags
sqlite3_uint64 colUsed
struct sqlite3_index_info::sqlite3_index_orderby

Public Members

int iColumn
unsigned char desc
struct sqlite3_io_methods

Public Members

int iVersion
int (*xClose)(sqlite3_file*)
int (*xRead)(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst)
int (*xWrite)(sqlite3_file*, const void*, int iAmt, sqlite3_int64 iOfst)
int (*xTruncate)(sqlite3_file*, sqlite3_int64 size)
int (*xSync)(sqlite3_file*, int flags)
int (*xFileSize)(sqlite3_file*, sqlite3_int64 *pSize)
int (*xLock)(sqlite3_file*, int)
int (*xUnlock)(sqlite3_file*, int)
int (*xCheckReservedLock)(sqlite3_file*, int *pResOut)
int (*xFileControl)(sqlite3_file*, int op, void *pArg)
int (*xSectorSize)(sqlite3_file*)
int (*xDeviceCharacteristics)(sqlite3_file*)
int (*xShmMap)(sqlite3_file*, int iPg, int pgsz, int, void volatile**)
int (*xShmLock)(sqlite3_file*, int offset, int n, int flags)
void (*xShmBarrier)(sqlite3_file*)
int (*xShmUnmap)(sqlite3_file*, int deleteFlag)
int (*xFetch)(sqlite3_file*, sqlite3_int64 iOfst, int iAmt, void **pp)
int (*xUnfetch)(sqlite3_file*, sqlite3_int64 iOfst, void *p)
struct sqlite3_mem_methods

Public Members

void *(*xMalloc)(int)
void (*xFree)(void*)
void *(*xRealloc)(void*, int)
int (*xSize)(void*)
int (*xRoundup)(int)
int (*xInit)(void*)
void (*xShutdown)(void*)
void *pAppData
struct sqlite3_module

Public Members

int iVersion
int (*xCreate)(sqlite3*, void *pAux, int argc, const char *const *argv, sqlite3_vtab **ppVTab, char**)
int (*xConnect)(sqlite3*, void *pAux, int argc, const char *const *argv, sqlite3_vtab **ppVTab, char**)
int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*)
int (*xDisconnect)(sqlite3_vtab *pVTab)
int (*xDestroy)(sqlite3_vtab *pVTab)
int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor)
int (*xClose)(sqlite3_vtab_cursor*)
int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, int argc, sqlite3_value **argv)
int (*xNext)(sqlite3_vtab_cursor*)
int (*xEof)(sqlite3_vtab_cursor*)
int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int)
int (*xRowid)(sqlite3_vtab_cursor*, sqlite3_int64 *pRowid)
int (*xUpdate)(sqlite3_vtab*, int, sqlite3_value**, sqlite3_int64*)
int (*xBegin)(sqlite3_vtab *pVTab)
int (*xSync)(sqlite3_vtab *pVTab)
int (*xCommit)(sqlite3_vtab *pVTab)
int (*xRollback)(sqlite3_vtab *pVTab)
int (*xFindFunction)(sqlite3_vtab *pVtab, int nArg, const char *zName, void (**pxFunc)(sqlite3_context*, int, sqlite3_value**), void **ppArg, )
int (*xRename)(sqlite3_vtab *pVtab, const char *zNew)
int (*xSavepoint)(sqlite3_vtab *pVTab, int)
int (*xRelease)(sqlite3_vtab *pVTab, int)
int (*xRollbackTo)(sqlite3_vtab *pVTab, int)
int (*xShadowName)(const char*)
int (*xIntegrity)(sqlite3_vtab *pVTab, const char *zSchema, const char *zTabName, int mFlags, char **pzErr)
struct sqlite3_mutex_methods

Public Members

int (*xMutexInit)(void)
int (*xMutexEnd)(void)
sqlite3_mutex *(*xMutexAlloc)(int)
void (*xMutexFree)(sqlite3_mutex*)
void (*xMutexEnter)(sqlite3_mutex*)
int (*xMutexTry)(sqlite3_mutex*)
void (*xMutexLeave)(sqlite3_mutex*)
int (*xMutexHeld)(sqlite3_mutex*)
int (*xMutexNotheld)(sqlite3_mutex*)
struct sqlite3_pcache_methods

Public Members

void *pArg
int (*xInit)(void*)
void (*xShutdown)(void*)
sqlite3_pcache *(*xCreate)(int szPage, int bPurgeable)
void (*xCachesize)(sqlite3_pcache*, int nCachesize)
int (*xPagecount)(sqlite3_pcache*)
void *(*xFetch)(sqlite3_pcache*, unsigned key, int createFlag)
void (*xUnpin)(sqlite3_pcache*, void*, int discard)
void (*xRekey)(sqlite3_pcache*, void*, unsigned oldKey, unsigned newKey)
void (*xTruncate)(sqlite3_pcache*, unsigned iLimit)
void (*xDestroy)(sqlite3_pcache*)
struct sqlite3_pcache_methods2

Public Members

int iVersion
void *pArg
int (*xInit)(void*)
void (*xShutdown)(void*)
sqlite3_pcache *(*xCreate)(int szPage, int szExtra, int bPurgeable)
void (*xCachesize)(sqlite3_pcache*, int nCachesize)
int (*xPagecount)(sqlite3_pcache*)
sqlite3_pcache_page *(*xFetch)(sqlite3_pcache*, unsigned key, int createFlag)
void (*xUnpin)(sqlite3_pcache*, sqlite3_pcache_page*, int discard)
void (*xRekey)(sqlite3_pcache*, sqlite3_pcache_page*, unsigned oldKey, unsigned newKey)
void (*xTruncate)(sqlite3_pcache*, unsigned iLimit)
void (*xDestroy)(sqlite3_pcache*)
void (*xShrink)(sqlite3_pcache*)
struct sqlite3_pcache_page

Public Members

void *pBuf
void *pExtra
struct sqlite3_rtree_geometry

Public Members

void *pContext
int nParam
sqlite3_rtree_dbl *aParam
void *pUser
void (*xDelUser)(void*)
struct sqlite3_rtree_query_info

Public Members

void *pContext
int nParam
sqlite3_rtree_dbl *aParam
void *pUser
void (*xDelUser)(void*)
sqlite3_rtree_dbl *aCoord
unsigned int *anQueue
int nCoord
int iLevel
int mxLevel
sqlite3_int64 iRowid
sqlite3_rtree_dbl rParentScore
int eParentWithin
int eWithin
sqlite3_rtree_dbl rScore
sqlite3_value **apSqlParam
struct sqlite3_snapshot

Public Members

unsigned char hidden[48]
struct sqlite3_str

Public Members

sqlite3 *db
char *zText
u32 nAlloc
u32 mxAlloc
u32 nChar
u8 accError
u8 printfFlags
struct sqlite3_value

Public Members

union sqlite3_value::MemValue u
char *z
int n
u16 flags
u8 enc
u8 eSubtype
sqlite3 *db
int szMalloc
u32 uTemp
char *zMalloc
void (*xDel)(void*)
struct sqlite3_vfs

Public Members

int iVersion
int szOsFile
int mxPathname
sqlite3_vfs *pNext
const char *zName
void *pAppData
int (*xOpen)(sqlite3_vfs*, sqlite3_filename zName, sqlite3_file*, int flags, int *pOutFlags)
int (*xDelete)(sqlite3_vfs*, const char *zName, int syncDir)
int (*xAccess)(sqlite3_vfs*, const char *zName, int flags, int *pResOut)
int (*xFullPathname)(sqlite3_vfs*, const char *zName, int nOut, char *zOut)
void *(*xDlOpen)(sqlite3_vfs*, const char *zFilename)
void (*xDlError)(sqlite3_vfs*, int nByte, char *zErrMsg)
void (*(*xDlSym)(sqlite3_vfs*, void*, const char *zSymbol))(void)
void (*xDlClose)(sqlite3_vfs*, void*)
int (*xRandomness)(sqlite3_vfs*, int nByte, char *zOut)
int (*xSleep)(sqlite3_vfs*, int microseconds)
int (*xCurrentTime)(sqlite3_vfs*, double*)
int (*xGetLastError)(sqlite3_vfs*, int, char*)
int (*xCurrentTimeInt64)(sqlite3_vfs*, sqlite3_int64*)
int (*xSetSystemCall)(sqlite3_vfs*, const char *zName, sqlite3_syscall_ptr)
sqlite3_syscall_ptr (*xGetSystemCall)(sqlite3_vfs*, const char *zName)
const char *(*xNextSystemCall)(sqlite3_vfs*, const char *zName)
struct sqlite3_vtab

Public Members

const sqlite3_module *pModule
int nRef
char *zErrMsg
struct sqlite3_vtab_cursor

Public Members

sqlite3_vtab *pVtab
struct sqlite3AutoExtList

Public Members

u32 nExt
void (**aExt)(void)
struct Sqlite3Config

Public Members

int bMemstat
u8 bCoreMutex
u8 bFullMutex
u8 bOpenUri
u8 bUseCis
u8 bSmallMalloc
u8 bExtraSchemaChecks
u8 bUseLongDouble
int mxStrlen
int neverCorrupt
int szLookaside
int nLookaside
int nStmtSpill
sqlite3_mem_methods m
sqlite3_mutex_methods mutex
sqlite3_pcache_methods2 pcache2
void *pHeap
int nHeap
int mnReq
int mxReq
sqlite3_int64 szMmap
sqlite3_int64 mxMmap
void *pPage
int szPage
int nPage
int mxParserStack
int sharedCacheEnabled
u32 szPma
int isInit
int inProgress
int isMutexInit
int isMallocInit
int isPCacheInit
int nRefInitMutex
sqlite3_mutex *pInitMutex
void (*xLog)(void*, int, const char*)
void *pLogArg
sqlite3_int64 mxMemdbSize
int (*xTestCallback)(int)
int bLocaltimeFault
int (*xAltLocaltime)(const void*, void*)
int iOnceResetThreshold
u32 szSorterRef
unsigned int iPrngSeed
struct sqlite3::sqlite3InitInfo

Public Members

Pgno newTnum
u8 iDb
u8 busy
unsigned orphanTrigger
unsigned imposterTable
unsigned reopenMemdb
const char **azInit
struct sqlite3PrngType

Public Members

u32 s[16]
u8 out[64]
u8 n
struct sqlite3StatType

Public Members

sqlite3StatValueType nowValue[10]
sqlite3StatValueType mxValue[10]
struct SrcItem

Public Members

Schema *pSchema
char *zDatabase
char *zName
char *zAlias
Table *pTab
Select *pSelect
int addrFillSub
int regReturn
int regResult
u8 jointype
unsigned notIndexed
unsigned isIndexedBy
unsigned isTabFunc
unsigned isCorrelated
unsigned isMaterialized
unsigned viaCoroutine
unsigned isRecursive
unsigned fromDDL
unsigned isCte
unsigned notCte
unsigned isUsing
unsigned isOn
unsigned isSynthUsing
unsigned isNestedFrom
struct SrcItem::[anonymous] fg
int iCursor
Expr *pOn
IdList *pUsing
union SrcItem::[anonymous] u3
Bitmask colUsed
char *zIndexedBy
ExprList *pFuncArg
u32 nRow
union SrcItem::[anonymous] u1
Index *pIBIndex
CteUse *pCteUse
union SrcItem::[anonymous] u2
struct SrcList

Public Members

int nSrc
u32 nAlloc
SrcItem a[1]
struct StatAccum

Public Members

sqlite3 *db
tRowcnt nEst
tRowcnt nRow
int nLimit
int nCol
int nKeyCol
u8 nSkipAhead
StatSample current
struct station_t

Public Functions

inline station_t()

Public Members

char longitude[11]

longitudine in sessadecimale 5 decimali rappresentazione intera

char latitude[11]

latitudine in sessadecimale 5 decimali rappresentazione intera

char network[31]

rete osservativa della stazione

char ident[10]

identificativo per stazioni mobili

char server[41]

server RMAP

char ntp_server[41]

server NTP

char mqtt_server[41]

broker MQTT

int sampletime

intervallo tra le misurazioni in secondi

char user[10]

utente

char password[31]

password

char stationslug[31]

nome sintetico della stazione

char boardslug[31]

nome sintetico della board

char mqttrootpath[10]

radice del topic MQTT per i dati

char mqttmaintpath[10]

radice del topic MQTT per i dati amministrativi

constantdata_t constantdata[MAX_CONSTANTDATA_COUNT]

Constantdata buffer for storing constant station data parameter (metadati)

uint8_t constantdata_count

configured constantdata number

struct StatSample

Public Members

tRowcnt *anDLt
struct stimawifiStatus_t

Public Members

measureStatus_t measure

Stati relativi al thread di misura.

publishStatus_t publish

Stati relativi al thread di pubblicazione.

udpStatus_t udp

Stati relativi al thread di ricezione UDP dei dati di georeferenziazione.

gpsStatus_t gps

Stati relativi al thread di ricezione GPS (porta seriale) dei dati di georeferenziazione.

dbStatus_t db

Stati relativi al thread di gestione del DataBase.

struct SubProgram

Public Members

VdbeOp *aOp
int nOp
int nMem
int nCsr
u8 *aOnce
void *token
SubProgram *pNext
struct SubstContext

Public Members

Parse *pParse
int iTable
int iNewTable
int isOuterJoin
ExprList *pEList
ExprList *pCList
struct SumCtx

Public Members

double rSum
double rErr
i64 iSum
i64 cnt
u8 approx
u8 ovrfl
struct summarydata_t

Public Functions

inline summarydata_t()

Public Members

float temperature
int humidity
int pm2
int pm10
int co2
struct Table

Public Members

char *zName
Column *aCol
Index *pIndex
char *zColAff
ExprList *pCheck
Pgno tnum
u32 nTabRef
u32 tabFlags
i16 iPKey
i16 nCol
i16 nNVCol
LogEst nRowLogEst
LogEst szTabRow
u8 keyConf
u8 eTabType
int addColOffset
FKey *pFKey
ExprList *pDfltList
struct Table::[anonymous]::[anonymous] tab
Select *pSelect
struct Table::[anonymous]::[anonymous] view
int nArg
char **azArg
VTable *p
struct Table::[anonymous]::[anonymous] vtab
union Table::[anonymous] u
Trigger *pTrigger
Schema *pSchema
struct TableLock

Public Members

int iDb
Pgno iTab
u8 isWriteLock
const char *zLockName
struct TabResult

Public Members

char **azResult
char *zErrMsg
u32 nAlloc
u32 nRow
u32 nColumn
u32 nData
int rc
class cpp_freertos::Tasklet
#include <tasklet.hpp>

A FreeRTOS wrapper for its concept of a Pended Function. In Linux, one permutation of this would be a Tasklet, or bottom half processing from an ISR.

This is an abstract base class. To use this, you need to subclass it. All of your Tasklets should be derived from the Tasklet class. Then implement the virtual Run function. This is a similar design to Java threading.

Public Functions

Tasklet()

Constructor

Note

Do not construct inside an ISR! This includes creating local instances of this object.

virtual ~Tasklet()

Destructor

Note

Do not delete inside an ISR! This includes the automatic deletion of local instances of this object when leaving scope.

bool Schedule(uint32_t parameter, TickType_t CmdTimeout = portMAX_DELAY)

Schedule this Tasklet to run.

Return

true if this command will be sent to the timer daemon, false if it will not (i.e. timeout).

Parameters
  • parameter: Value passed to your Run method.

  • CmdTimeout: How long to wait to send this command to the timer daemon.

bool ScheduleFromISR(uint32_t parameter, BaseType_t *pxHigherPriorityTaskWoken)

Schedule this Tasklet to run from ISR context. This allows FreeRTOS ISRs to defer processing from the ISR into a task context.

Return

true if this command will be sent to the timer daemon, false if it will not (i.e. timeout).

Parameters
  • parameter: Value passed to your Run method.

  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

Protected Functions

virtual void Run(uint32_t parameter) = 0

Implementation of your actual tasklet code. You must override this function.

Parameters
  • parameter: Value passed to you from the Schedule() methods.

void CheckForSafeDelete()

You must call this in your dtor, to synchronize between being called and being deleted.

Private Members

SemaphoreHandle_t DtorLock

Protect against accidental deletion before we were executed.

Private Static Functions

static void TaskletAdapterFunction(void *ref, uint32_t parameter)

Adapter function that allows you to write a class specific Run() function that interfaces with FreeRTOS. Look at the implementation of the constructors and this code to see how the interface between C and C++ is performed.

class cpp_freertos::TaskletCreateException : public std::exception
#include <tasklet.hpp>

This is the exception that is thrown if a Tasklet constructor fails.

Public Functions

inline TaskletCreateException()

Create the exception.

inline explicit TaskletCreateException(const char *info)

Create the exception.

inline virtual const char *what() const

Get what happened as a string. We are overriding the base implementation here.

Private Members

char errorString[80]

A text string representing what failed.

class cpp_freertos::Thread
#include <thread.hpp>

Wrapper class around FreeRTOS's implementation of a task.

This is an abstract base class. To use this, you need to subclass it. All of your threads should be derived from the Thread class. Then implement the virtual Run function. This is a similar design to Java threading.

By default, we leverage C++ strings for the Thread Name. If this is not desirable, define CPP_FREERTOS_NO_CPP_STRINGS and the class will fall back to C character arrays.

Subclassed by dbThread, gpsThread, measureThread, publishThread, udpThread

Public Functions

Thread(const std::string Name, uint16_t StackDepth, UBaseType_t Priority)

Constructor to create a named thread.

Parameters
  • Name: Name of the thread. Only useful for debugging.

  • StackDepth: Number of "words" allocated for the Thread stack.

  • Priority: FreeRTOS priority of this Thread.

Thread(uint16_t StackDepth, UBaseType_t Priority)

Constructor to create an unnamed thread.

Parameters
  • StackDepth: Number of "words" allocated for the Thread stack.

  • Priority: FreeRTOS priority of this Thread.

bool Start()

Starts a thread.

This is the API call that actually starts the thread running. It creates a backing FreeRTOS task. By separating object creation from starting the Thread, it solves the pure virtual fuction call failure case. If we attempt to automatically call xTaskCreate from the base class constructor, in certain conditions the task starts to run "before" the derived class is constructed! So we don't do that anymore.

This may be called from your ctor once you have completed your objects construction (so as the last step).

This should only be called once ever!

virtual ~Thread()

Our destructor. This must exist even if FreeRTOS is configured to disallow task deletion.

inline TaskHandle_t GetHandle()

Accessor to get the thread's backing task handle. There is no setter, on purpose.

Return

FreeRTOS task handle.

inline void Notify()

Notify a specific thread.

inline void NotifyFromISR()

Notify a specific thread from ISR context.

inline std::string GetName()

Get the name of this thread.

Return

a C++ string with the name of the task.

Public Static Functions

static inline void Yield()

Yield the scheduler.

static inline void StartScheduler()

Start the scheduler.

Note

You need to use this call. Do NOT directly call vTaskStartScheduler while using this library.

static inline void EndScheduler()

End the scheduler.

Note

Please see the FreeRTOS documentation regarding constraints with the implementation of this.

Note

You need to use this call. Do NOT directly call vTaskEndScheduler while using this library.

Protected Functions

virtual void Run() = 0

Implementation of your actual thread code. You must override this function.

Note

If INCLUDE_vTaskDelete is defined, then you may return from your Run method. This will cause the task to be deleted from FreeRTOS, however you are still responsible to delete the task object. If this is not defined, then retuning from your Run() method will result in an assert.

inline uint32_t WaitForNotification(TickType_t Timeout = portMAX_DELAY)

Have this thread wait until it gets notification.

Return

Notification Value, which can be set/modified when giving a notification

Parameters
  • Timeout: Allows you to specify a timeout on the Wait, if desired.

Private Members

TaskHandle_t handle

If we can't delete a task, it makes no sense to have a Cleanup routine. Reference to the underlying task handle for this thread. Can be obtained from GetHandle().

const std::string Name

The name of this thread.

const uint16_t StackDepth

Stack depth of this Thread, in words.

UBaseType_t Priority

A saved / cached copy of what the Thread's priority is.

bool ThreadStarted

Flag whether or not the Thread was started.

Private Static Functions

static void TaskFunctionAdapter(void *pvParameters)

Adapter function that allows you to write a class specific Run() function that interfaces with FreeRTOS. Look at the implementation of the constructors and this code to see how the interface between C and C++ is performed.

Private Static Attributes

static bool SchedulerActive = false

We need to track whether the scheduler is active or not.

static MutexStandard StartGuardLock

Make sure no one calls Start more than once.

class cpp_freertos::Ticks
#include <ticks.hpp>

Class encapsulating FreeRTOS idea of a tick.

Public Static Functions

static inline TickType_t GetTicks()

Get the current tick count.

Return

Current tick count.

static inline TickType_t GetTicksFromISR()

Get the current tick count from ISR context.

Return

Current tick count.

static inline TickType_t TicksToMs(TickType_t ticks)

Convert from ticks to ms.

Return

milliseconds.

Parameters
  • ticks: ticks to convert.

static inline TickType_t MsToTicks(TickType_t milliseconds)

Convert from ms to ticks.

Return

ticks

Parameters
  • milliseconds: milliseconds to convert.

static inline TickType_t SecondsToTicks(TickType_t seconds)

Convert from seconds to ticks.

Return

ticks

Parameters
  • seconds: seconds to convert.

class cpp_freertos::Timer
#include <timer.hpp>

Wrapper class around FreeRTOS's implementation of a timer.

This is an abstract base class. To use this, you need to subclass it. All of your timers should be derived from the Timer class. Then implement the virtual Run function. This is a similar design to Java threading.

Public Functions

Timer(const char *const TimerName, TickType_t PeriodInTicks, bool Periodic = true)

Construct a named timer. Timers are not active after they are created, you need to activate them via Start, Reset, etc.

Exceptions
Parameters
  • TimerName: Name of the timer for debug.

  • PeriodInTicks: When does the timer expire and run your Run() method.

  • Periodic: true if the timer expires every PeriodInTicks. false if this is a one shot timer.

Timer(TickType_t PeriodInTicks, bool Periodic = true)

Construct an unnamed timer. Timers are not active after they are created, you need to activate them via Start, Reset, etc.

Exceptions
Parameters
  • PeriodInTicks: When does the timer expire and run your Run() method.

  • Periodic: true if the timer expires every PeriodInTicks. false if this is a one shot timer.

virtual ~Timer()

Destructor

bool IsActive()

Is the timer currently active?

Return

true if the timer is active, false otherwise.

bool Start(TickType_t CmdTimeout = portMAX_DELAY)

Start a timer. This changes the state to active.

Return

true if this command will be sent to the timer code, false if it will not (i.e. timeout).

Parameters
  • CmdTimeout: How long to wait to send this command to the timer code.

bool StartFromISR(BaseType_t *pxHigherPriorityTaskWoken)

Start a timer from ISR context. This changes the state to active.

Return

true if this command will be sent to the timer code, false if it will not (i.e. timeout).

Parameters
  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

bool Stop(TickType_t CmdTimeout = portMAX_DELAY)

Stop a timer. This changes the state to inactive.

Return

true if this command will be sent to the timer code, false if it will not (i.e. timeout).

Parameters
  • CmdTimeout: How long to wait to send this command to the timer code.

bool StopFromISR(BaseType_t *pxHigherPriorityTaskWoken)

Stop a timer from ISR context. This changes the state to inactive.

Return

true if this command will be sent to the timer code, false if it will not (i.e. timeout).

Parameters
  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

bool Reset(TickType_t CmdTimeout = portMAX_DELAY)

Reset a timer. This changes the state to active.

Return

true if this command will be sent to the timer code, false if it will not (i.e. timeout).

Parameters
  • CmdTimeout: How long to wait to send this command to the timer code.

bool ResetFromISR(BaseType_t *pxHigherPriorityTaskWoken)

Reset a timer from ISR context. This changes the state to active.

Return

true if this command will be sent to the timer code, false if it will not (i.e. timeout).

Parameters
  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

bool SetPeriod(TickType_t NewPeriod, TickType_t CmdTimeout = portMAX_DELAY)

Change a timer's period.

Return

true if this command will be sent to the timer code, false if it will not (i.e. timeout).

Parameters
  • NewPeriod: The period in ticks.

  • CmdTimeout: How long to wait to send this command to the timer code.

bool SetPeriodFromISR(TickType_t NewPeriod, BaseType_t *pxHigherPriorityTaskWoken)

Change a timer's period from ISR context.

Return

true if this command will be sent to the timer code, false if it will not (i.e. timeout).

Parameters
  • NewPeriod: The period in ticks.

  • pxHigherPriorityTaskWoken: Did this operation result in a rescheduling event.

Protected Functions

virtual void Run() = 0

Implementation of your actual timer code. You must override this function.

Private Members

TimerHandle_t handle

Reference to the underlying timer handle.

Private Static Functions

static void TimerCallbackFunctionAdapter(TimerHandle_t xTimer)

Adapter function that allows you to write a class specific Run() function that interfaces with FreeRTOS. Look at the implementation of the constructors and this code to see how the interface between C and C++ is performed.

class cpp_freertos::TimerCreateException : public std::exception
#include <timer.hpp>

This is the exception that is thrown if a Thread constructor fails.

Public Functions

inline TimerCreateException()

Create the exception.

inline virtual const char *what() const

Get what happened as a string. We are overriding the base implementation here.

Private Members

char errorString[40]

A text string representing what failed.

struct Token

Public Members

const char *z
unsigned int n
struct TrigEvent

Public Members

int a
IdList *b
struct Trigger

Public Members

char *zName
char *table
u8 op
u8 tr_tm
u8 bReturning
Expr *pWhen
IdList *pColumns
Schema *pSchema
Schema *pTabSchema
TriggerStep *step_list
Trigger *pNext
struct TriggerPrg

Public Members

Trigger *pTrigger
TriggerPrg *pNext
SubProgram *pProgram
int orconf
u32 aColmask[2]
struct TriggerStep

Public Members

u8 op
u8 orconf
Trigger *pTrig
Select *pSelect
char *zTarget
SrcList *pFrom
Expr *pWhere
ExprList *pExprList
IdList *pIdList
Upsert *pUpsert
char *zSpan
TriggerStep *pNext
TriggerStep *pLast
struct udp_data_t

Public Members

int id
frtosLogging *logger
udpStatus_t *status
georef_t *georef
struct udpStatus_t

Public Members

status_e receive

stato della ricezione dei dati per georeferenziazione

class udpThread : public cpp_freertos::Thread

Public Functions

udpThread(udp_data_t *udp_data)

Constructor to create a UDP thread.

Parameters
  • udp_data: data used by thread.

~udpThread()
virtual void Cleanup()

Protected Functions

virtual void Run()

Implementation of your actual thread code. You must override this function.

Note

If INCLUDE_vTaskDelete is defined, then you may return from your Run method. This will cause the task to be deleted from FreeRTOS, however you are still responsible to delete the task object. If this is not defined, then retuning from your Run() method will result in an assert.

Private Functions

void doUdp()

Private Members

udp_data_t *data
struct uint16_observation_t

Public Members

uint16_t med[OBSERVATION_COUNT]

buffer containing the mean values calculated on a one sample buffer respectively

uint16_t count

number of observations

uint16_t *read_ptr

reader pointer to buffer (read observations for calculate report value)

uint16_t *write_ptr

writer pointer to buffer (add new observation)

struct UnpackedRecord

Public Members

KeyInfo *pKeyInfo
Mem *aMem
char *z
i64 i
union UnpackedRecord::[anonymous] u
int n
u16 nField
i8 default_rc
u8 errCode
i8 r1
i8 r2
u8 eqSeen
struct Upsert

Public Members

ExprList *pUpsertTarget
Expr *pUpsertTargetWhere
ExprList *pUpsertSet
Expr *pUpsertWhere
Upsert *pNextUpsert
u8 isDoUpdate
u8 isDup
void *pToFree
Index *pUpsertIdx
SrcList *pUpsertSrc
int regData
int iDataCur
int iIdxCur
struct us_lnk_lst

Public Members

char *data
struct us_lnk_lst *previous
struct ValueList

Public Members

BtCursor *pCsr
sqlite3_value *pOut
struct ValueNewStat4Ctx

Public Members

Parse *pParse
Index *pIdx
UnpackedRecord **ppRec
int iVal
struct Vdbe

Public Members

sqlite3 *db
Vdbe **ppVPrev
Vdbe *pVNext
Parse *pParse
ynVar nVar
int nMem
int nCursor
u32 cacheCtr
int pc
int rc
i64 nChange
int iStatement
i64 iCurrentTime
i64 nFkConstraint
i64 nStmtDefCons
i64 nStmtDefImmCons
Mem *aMem
Mem **apArg
VdbeCursor **apCsr
Mem *aVar
Op *aOp
int nOp
int nOpAlloc
Mem *aColName
Mem *pResultRow
char *zErrMsg
VList *pVList
i64 startTime
u16 nResColumn
u16 nResAlloc
u8 errorAction
u8 minWriteFileFormat
u8 prepFlags
u8 eVdbeState
bft expired
bft explain
bft changeCntOn
bft usesStmtJournal
bft readOnly
bft bIsReader
bft haveEqpOps
yDbMask btreeMask
yDbMask lockMask
u32 aCounter[9]
char *zSql
void *pFree
VdbeFrame *pFrame
VdbeFrame *pDelFrame
int nFrame
u32 expmask
SubProgram *pProgram
AuxData *pAuxData
struct VdbeCursor

Public Members

u8 eCurType
i8 iDb
u8 nullRow
u8 deferredMoveto
u8 isTable
Bool isEphemeral
Bool useRandomRowid
Bool isOrdered
Bool noReuse
Bool colCache
u16 seekHit
Btree *pBtx
u32 *aAltMap
union VdbeCursor::[anonymous] ub
i64 seqCount
u32 cacheStatus
int seekResult
VdbeCursor *pAltCursor
BtCursor *pCursor
sqlite3_vtab_cursor *pVCur
VdbeSorter *pSorter
union VdbeCursor::[anonymous] uc
KeyInfo *pKeyInfo
u32 iHdrOffset
Pgno pgnoRoot
i16 nField
u16 nHdrParsed
i64 movetoTarget
u32 *aOffset
const u8 *aRow
u32 payloadSize
u32 szRow
VdbeTxtBlbCache *pCache
u32 aType[1]
struct VdbeFrame

Public Members

Vdbe *v
VdbeFrame *pParent
Op *aOp
Mem *aMem
VdbeCursor **apCsr
u8 *aOnce
void *token
i64 lastRowid
AuxData *pAuxData
int nCursor
int pc
int nOp
int nMem
int nChildMem
int nChildCsr
i64 nChange
i64 nDbChange
struct VdbeOp

Public Members

u8 opcode
signed char p4type
u16 p5
int p1
int p2
int p3
union VdbeOp::p4union p4
struct VdbeOpList

Public Members

u8 opcode
signed char p1
signed char p2
signed char p3
struct VdbeSorter

Public Members

int mnPmaSize
int mxPmaSize
int mxKeysize
int pgsz
PmaReader *pReader
MergeEngine *pMerger
sqlite3 *db
KeyInfo *pKeyInfo
UnpackedRecord *pUnpacked
SorterList list
int iMemory
int nMemory
u8 bUsePMA
u8 bUseThreads
u8 iPrev
u8 nTask
u8 typeMask
SortSubtask aTask[1]
struct VdbeTxtBlbCache

Public Members

char *pCValue
i64 iOffset
int iCol
u32 cacheStatus
u32 colCacheCtr
struct VtabCtx

Public Members

VTable *pVTable
Table *pTab
VtabCtx *pPrior
int bDeclared
struct VTable

Public Members

sqlite3 *db
Module *pMod
sqlite3_vtab *pVtab
int nRef
u8 bConstraint
u8 bAllSchemas
u8 eVtabRisk
int iSavepoint
VTable *pNext
struct Walker

Public Members

Parse *pParse
int (*xExprCallback)(Walker*, Expr*)
int (*xSelectCallback)(Walker*, Select*)
void (*xSelectCallback2)(Walker*, Select*)
int walkerDepth
u16 eCode
u16 mWFlags
NameContext *pNC
int n
int iCur
SrcList *pSrcList
struct CCurHint *pCCurHint
struct RefSrcList *pRefSrcList
int *aiCol
struct IdxCover *pIdxCover
ExprList *pGroupBy
Select *pSelect
struct WindowRewrite *pRewrite
struct WhereConst *pConst
struct RenameCtx *pRename
struct Table *pTab
struct CoveringIndexCheck *pCovIdxCk
SrcItem *pSrcItem
DbFixer *pFix
Mem *aMem
union Walker::[anonymous] u
struct WhereAndInfo

Public Members

WhereClause wc
struct WhereClause

Public Members

WhereInfo *pWInfo
WhereClause *pOuter
u8 op
u8 hasOr
int nTerm
int nSlot
int nBase
WhereTerm *a
WhereTerm aStatic[1]
struct WhereConst

Public Members

Parse *pParse
u8 *pOomFault
int nConst
int nChng
int bHasAffBlob
u32 mExcludeOn
Expr **apExpr
struct WhereInfo

Public Members

Parse *pParse
SrcList *pTabList
ExprList *pOrderBy
ExprList *pResultSet
Select *pSelect
int aiCurOnePass[2]
int iContinue
int iBreak
int savedNQueryLoop
u16 wctrlFlags
LogEst iLimit
u8 nLevel
i8 nOBSat
u8 eOnePass
u8 eDistinct
unsigned bDeferredSeek
unsigned untestedTerms
unsigned bOrderedInnerLoop
unsigned sorted
LogEst nRowOut
int iTop
int iEndWhere
WhereLoop *pLoops
WhereMemBlock *pMemToFree
Bitmask revMask
WhereClause sWC
WhereMaskSet sMaskSet
WhereLevel a[1]
struct WhereLevel

Public Members

int iLeftJoin
int iTabCur
int iIdxCur
int addrBrk
int addrNxt
int addrSkip
int addrCont
int addrFirst
int addrBody
int regBignull
int addrBignull
int regFilter
WhereRightJoin *pRJ
u8 iFrom
u8 op
u8 p3
u8 p5
int p1
int p2
int nIn
int iCur
int addrInTop
int iBase
int nPrefix
u8 eEndLoopOp
struct WhereLevel::[anonymous]::[anonymous]::InLoop *aInLoop
struct WhereLevel::[anonymous]::[anonymous] in
Index *pCoveringIdx
union WhereLevel::[anonymous] u
struct WhereLoop *pWLoop
Bitmask notReady
struct WhereLoop

Public Members

Bitmask prereq
Bitmask maskSelf
u8 iTab
u8 iSortIdx
LogEst rSetup
LogEst rRun
LogEst nOut
u16 nEq
u16 nBtm
u16 nTop
u16 nDistinctCol
Index *pIndex
struct WhereLoop::[anonymous]::[anonymous] btree
int idxNum
u32 needFree
u32 bOmitOffset
i8 isOrdered
u16 omitMask
char *idxStr
u32 mHandleIn
struct WhereLoop::[anonymous]::[anonymous] vtab
union WhereLoop::[anonymous] u
u32 wsFlags
u16 nLTerm
u16 nSkip
u16 nLSlot
WhereTerm **aLTerm
WhereLoop *pNextLoop
WhereTerm *aLTermSpace[3]
struct WhereLoopBuilder

Public Members

WhereInfo *pWInfo
WhereClause *pWC
WhereLoop *pNew
WhereOrSet *pOrSet
unsigned char bldFlags1
unsigned char bldFlags2
unsigned int iPlanLimit
struct WhereMaskSet

Public Members

int bVarSelect
int n
int ix[BMS]
struct WhereMemBlock

Public Members

WhereMemBlock *pNext
u64 sz
struct WhereOrCost

Public Members

Bitmask prereq
LogEst rRun
LogEst nOut
struct WhereOrInfo

Public Members

WhereClause wc
Bitmask indexable
struct WhereOrSet

Public Members

u16 n
WhereOrCost a[N_OR_COST]
struct WherePath

Public Members

Bitmask maskLoop
Bitmask revLoop
LogEst nRow
LogEst rCost
LogEst rUnsorted
i8 isOrdered
WhereLoop **aLoop
struct WhereRightJoin

Public Members

int iMatch
int regBloom
int regReturn
int addrSubrtn
int endSubrtn
struct WhereScan

Public Members

WhereClause *pOrigWC
WhereClause *pWC
const char *zCollName
Expr *pIdxExpr
int k
u32 opMask
char idxaff
unsigned char iEquiv
unsigned char nEquiv
int aiCur[11]
i16 aiColumn[11]
struct WhereTerm

Public Members

Expr *pExpr
WhereClause *pWC
LogEst truthProb
u16 wtFlags
u16 eOperator
u8 nChild
u8 eMatchOp
int iParent
int leftCursor
int leftColumn
int iField
struct WhereTerm::[anonymous]::[anonymous] x
WhereOrInfo *pOrInfo
WhereAndInfo *pAndInfo
union WhereTerm::[anonymous] u
Bitmask prereqRight
Bitmask prereqAll
struct Window

Public Members

char *zName
char *zBase
ExprList *pPartition
ExprList *pOrderBy
u8 eFrmType
u8 eStart
u8 eEnd
u8 bImplicitFrame
u8 eExclude
Expr *pStart
Expr *pEnd
Window **ppThis
Window *pNextWin
Expr *pFilter
FuncDef *pWFunc
int iEphCsr
int regAccum
int regResult
int csrApp
int regApp
int regPart
Expr *pOwner
int nBufferCol
int iArgCol
int regOne
int regStartRowid
int regEndRowid
u8 bExprArgs
struct WindowCodeArg

Public Members

Parse *pParse
Window *pMWin
Vdbe *pVdbe
int addrGosub
int regGosub
int regArg
int eDelete
int regRowid
WindowCsrAndReg start
WindowCsrAndReg current
WindowCsrAndReg end
struct WindowCsrAndReg

Public Members

int csr
int reg
struct WindowRewrite

Public Members

Window *pWin
SrcList *pSrc
ExprList *pSub
Table *pTab
Select *pSubSelect
struct With

Public Members

int nCte
int bView
With *pOuter
Cte a[1]
class cpp_freertos::WorkItem
#include <workqueue.hpp>

This class encapsulates the idea of a discrete, non-repeating task. Create a WorkItem when there is something you need to do on a different Thread, but doesn't have to happen periodically. This is a great construct for one off fire and forget tasks.

This is an abstract base class. To use this, you need to subclass it. All of your WorkItems should be derived from this class. Then implement the virtual Run function. This is a similar design to Java threading.

Public Functions

WorkItem(bool freeAfterComplete = false)

Our constructor.

Note

Only set freeAfterComplete = true if: 1) You dynamically allocated it (i.e. used "new") 2) After you call QueueWork() you promise never to touch this object again.

Parameters
  • freeAfterComplete: If you pass in a true, you are requesing the WorkQueue itself to delete this WorkItem after it has run it.

virtual ~WorkItem()

Our destructor.

bool FreeAfterRun()

Allows a client to decide if this WorkItem is marked for automatic deletion.

virtual void Run() = 0

Implementation of your actual WorkItem function. You must override this function.

Private Members

const bool FreeItemAfterCompleted

Designates whether this WorkItem should be deleted after the WorkQueue has run it.

class cpp_freertos::WorkQueue
#include <workqueue.hpp>

This class is the "engine" for WorkItems. Create one or more WorkQueues to accept WorkItems. WorkQueues pull WorkItems off of a FIFO queue and run them sequentially.

Public Functions

WorkQueue(const char *const Name, uint16_t StackDepth = DEFAULT_WORK_QUEUE_STACK_SIZE, UBaseType_t Priority = DEFAULT_WORK_QUEUE_PRIORITY, UBaseType_t MaxWorkItems = DEFAULT_MAX_WORK_ITEMS)

Constructor to create a named WorkQueue.

Exceptions
Parameters
  • Name: Name of the thread internal to the WorkQueue. Only useful for debugging.

  • StackDepth: Number of "words" allocated for the Thread stack.

  • Priority: FreeRTOS priority of this Thread.

  • MaxWorkItems: Maximum number of WorkItems this WorkQueue can hold.

WorkQueue(uint16_t StackDepth = DEFAULT_WORK_QUEUE_STACK_SIZE, UBaseType_t Priority = DEFAULT_WORK_QUEUE_PRIORITY, UBaseType_t MaxWorkItems = DEFAULT_MAX_WORK_ITEMS)

Constructor to create an unnamed WorkQueue.

Exceptions
Parameters
  • StackDepth: Number of "words" allocated for the Thread stack.

  • Priority: FreeRTOS priority of this Thread.

  • MaxWorkItems: Maximum number of WorkItems this WorkQueue can hold.

bool QueueWork(WorkItem *work)

Send a WorkItem off to be executed.

Return

true if it was queued, false otherwise.

Note

This function may block if the WorkQueue is presently full.

Parameters

Private Members

CWorkerThread *WorkerThread

Pointer to our WorkerThread.

Queue *WorkItemQueue

Pointer to our work queue itself.

BinarySemaphore *ThreadComplete

Semaphore to support deconstruction without race conditions.

struct writable_data_t
#include <i2c-leaf.h>

Writable data through i2c bus.

Public Members

uint8_t i2c_address

i2c address

bool is_oneshot

enable or disable oneshot mode

uint16_t leaf_calibration_threshold
bool is_continuous

enable or disable continuous mode

uint16_t adc_voltage_max_panel
uint16_t adc_voltage_max_battery
float adc_calibration_offset[ADS1115_CHANNEL_COUNT]
float adc_calibration_gain[ADS1115_CHANNEL_COUNT]
float sensor_voltage_max[ADS1115_CHANNEL_COUNT]
float sensor_rad_max[ADS1115_CHANNEL_COUNT]
uint16_t tipping_bucket_time_ms

Tipping bucket time in milliseconds.

uint8_t rain_for_tip

How much mm of rain for one tip of tipping bucket rain gauge.

sensor_conf_t sensors[2]

sensors configurations

float adc_voltage_offset_1
float adc_voltage_offset_2
float adc_voltage_min
float adc_voltage_max
union YYMINORTYPE

Public Members

int yyinit
sqlite3ParserTOKENTYPE yy0
ExprList *yy14
With *yy59
Cte *yy67
Upsert *yy122
IdList *yy132
int yy144
const char *yy168
SrcList *yy203
Window *yy211
OnOrUsing yy269
struct TrigEvent yy286
int value
int mask
struct YYMINORTYPE::[anonymous] yy383
u32 yy391
TriggerStep *yy427
Expr *yy454
u8 yy462
struct FrameBound yy509
Select *yy555
struct yyParser

Public Members

yyStackEntry *yytos
sqlite3ParserARG_SDECL sqlite3ParserCTX_SDECL yyStackEntry * yystackEnd
yyStackEntry *yystack
yyStackEntry yystk0[YYSTACKDEPTH]
struct yyStackEntry

Public Members

YYACTIONTYPE stateno
YYCODETYPE major
YYMINORTYPE minor
namespace cpp_freertos

C++ exceptions are used by default when constructors fail. If you do not want this behavior, define the following in your makefile or project. Note that in most / all cases when a constructor fails, it's a fatal error. In the cases when you've defined this, the new default behavior will be to issue a configASSERT() instead.

The default in the C++ Wrapper classes is to use the C++ string class. If you do not want this, define the following in your makefile or project, and the Thread class will default to using character arrays instead of C++ strings.

Note

If you define this, you also must define CPP_FREERTOS_NO_EXCEPTIONS. Some classes throw exceptions if they cannot be constructed, and the exceptions they throw depend on C++ strings.

namespace std
file index.md
file ArduinoISP.ino
#include "Arduino.h"

Defines

PROG_FLICKER
SPI_CLOCK
RESET
LED_HB
LED_ERR
LED_PMODE
PIN_MOSI
PIN_MISO
PIN_SCK
SERIAL
BAUDRATE
HWVER
SWMAJ
SWMIN
STK_OK
STK_FAILED
STK_UNKNOWN
STK_INSYNC
STK_NOSYNC
CRC_EOP
SPI_MODE0
beget16(addr)
PTIME
EECHUNK

Typedefs

typedef struct param parameter

Functions

void pulse(int pin, int times)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void heartbeat()
void reset_target(bool reset)
void loop(void)

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

uint8_t getch()
void fill(int n)
void prog_lamp(int state)
uint8_t spi_transaction(uint8_t a, uint8_t b, uint8_t c, uint8_t d)
void empty_reply()
void breply(uint8_t b)
void get_version(uint8_t c)
void set_parameters()
void start_pmode()
void end_pmode()
void universal()
void flash(uint8_t hilo, unsigned int addr, uint8_t data)
void commit(unsigned int addr)
unsigned int current_page()
void write_flash(int length)
uint8_t write_flash_pages(int length)
uint8_t write_eeprom(unsigned int length)
uint8_t write_eeprom_chunk(unsigned int start, unsigned int length)
void program_page()
uint8_t flash_read(uint8_t hilo, unsigned int addr)
char flash_read_page(int length)
char eeprom_read_page(int length)
void read_page()
void read_signature()
void avrisp()

Variables

static BitBangedSPI SPI
int ISPError = 0
int pmode = 0
unsigned int here
uint8_t buff[256]
parameter param
uint8_t hbval = 128
int8_t hbdelta = 8
static bool rst_active_high
file baudcheck.c

Variables

bpsx =BAUD_RATEbps=${bpsx/L/}bps=${bps/U/}fcpux=F_CPUfcpu=${fcpux/L/}fcpu=${fcpu/U/}BAUD_SETTING=$(( ( ($fcpu + $bps * 4) / (($bps * 8))) - 1 ))BAUD_ACTUAL=$(( ($fcpu/(8 * (($BAUD_SETTING)+1))) ))BAUD_ERROR=$(( (( 100*($BAUD_ACTUAL - $bps) ) / $bps) ))ERR_TS=$(( ((( 1000*($BAUD_ACTUAL - $bps) ) / $bps) - $BAUD_ERROR * 10) ))ERR_TENTHS=$(( ERR_TS > 0 ? ERR_TS: -ERR_TS ))echo BAUD RATE CHECK: Desired: $bps
Real __pad0__
Real UBRRL = $BAUD_SETTING
file baudcheck.c

Variables

bpsx =BAUD_RATEbps=${bpsx/L/}bps=${bps/U/}fcpux=F_CPUfcpu=${fcpux/L/}fcpu=${fcpu/U/}BAUD_SETTING=$(( ( ($fcpu + $bps * 4) / (($bps * 8))) - 1 ))BAUD_ACTUAL=$(( ($fcpu/(8 * (($BAUD_SETTING)+1))) ))BAUD_ERROR=$(( (( 100*($BAUD_ACTUAL - $bps) ) / $bps) ))ERR_TS=$(( ((( 1000*($BAUD_ACTUAL - $bps) ) / $bps) - $BAUD_ERROR * 10) ))ERR_TENTHS=$(( ERR_TS > 0 ? ERR_TS: -ERR_TS ))echo BAUD RATE CHECK: Desired: $bps
Real __pad0__
Real UBRRL = $BAUD_SETTING
file boot.h
#include <avr/eeprom.h>#include <avr/io.h>#include <inttypes.h>#include <limits.h>

Defines

BOOTLOADER_SECTION

Used to declare a function or variable to be placed into a new section called .bootloader. This section and its contents can then be relocated to any address (such as the bootloader NRWW area) at link-time.

__COMMON_ASB
__COMMON_ASRE
BLB12
BLB11
BLB02
BLB01
boot_spm_interrupt_enable()

Enable the SPM interrupt.

boot_spm_interrupt_disable()

Disable the SPM interrupt.

boot_is_spm_interrupt()

Check if the SPM interrupt is enabled.

boot_rww_busy()

Check if the RWW section is busy.

boot_spm_busy()

Check if the SPM instruction is busy.

boot_spm_busy_wait()

Wait while the SPM instruction is busy.

__BOOT_PAGE_ERASE
__BOOT_PAGE_WRITE
__BOOT_PAGE_FILL
__BOOT_RWW_ENABLE
__BOOT_LOCK_BITS_SET
__boot_page_fill_short(address, data)
__boot_page_fill_normal(address, data)
__boot_page_fill_alternate(address, data)
__boot_page_fill_extended(address, data)
__boot_page_fill_extended_short(address, data)
__boot_page_erase_short(address)
__boot_page_erase_normal(address)
__boot_page_erase_alternate(address)
__boot_page_erase_extended(address)
__boot_page_erase_extended_short(address)
__boot_page_write_short(address)
__boot_page_write_normal(address)
__boot_page_write_alternate(address)
__boot_page_write_extended(address)
__boot_page_write_extended_short(address)
__boot_rww_enable_short()
__boot_rww_enable()
__boot_rww_enable_alternate()
__boot_lock_bits_set_short(lock_bits)
__boot_lock_bits_set(lock_bits)
__boot_lock_bits_set_alternate(lock_bits)
GET_LOW_FUSE_BITS

address to read the low fuse bits, using boot_lock_fuse_bits_get

GET_LOCK_BITS

address to read the lock bits, using boot_lock_fuse_bits_get

GET_EXTENDED_FUSE_BITS

address to read the extended fuse bits, using boot_lock_fuse_bits_get

GET_HIGH_FUSE_BITS

address to read the high fuse bits, using boot_lock_fuse_bits_get

boot_lock_fuse_bits_get_short(address)
boot_lock_fuse_bits_get(address)

Read the lock or fuse bits at address.

Parameter address can be any of GET_LOW_FUSE_BITS, GET_LOCK_BITS, GET_EXTENDED_FUSE_BITS, or GET_HIGH_FUSE_BITS.

Note

The lock and fuse bits returned are the physical values, i.e. a bit returned as 0 means the corresponding fuse or lock bit is programmed.

__BOOT_SIGROW_READ
boot_signature_byte_get_short(addr)
boot_signature_byte_get(addr)

Read the Signature Row byte at address. For some MCU types, this function can also retrieve the factory-stored oscillator calibration bytes.

Parameter address can be 0-0x1f as documented by the datasheet.

Note

The values are MCU type dependent.

boot_page_fill(address, data)

Fill the bootloader temporary page buffer for flash address with data word.

Note

The address is a byte address. The data is a word. The AVR writes data to the buffer a word at a time, but addresses the buffer per byte! So, increment your address by 2 between calls, and send 2 data bytes in a word format! The LSB of the data is written to the lower address; the MSB of the data is written to the higher address.

boot_page_erase(address)

Erase the flash page that contains address.

Note

address is a byte address in flash, not a word address.

boot_page_write(address)

Write the bootloader temporary page buffer to flash page that contains address.

Note

address is a byte address in flash, not a word address.

boot_rww_enable()

Enable the Read-While-Write memory section.

boot_lock_bits_set(lock_bits)

Set the bootloader lock bits.

For example, to disallow the SPM instruction from writing to the Boot Loader memory section of flash, you would use this macro as such:

Note

In this context, a 'set bit' will be written to a zero value. Note also that only BLBxx bits can be programmed by this command.

Parameters
  • lock_bits: A mask of which Boot Loader Lock Bits to set.

boot_lock_bits_set (_BV (BLB11));

Note

Like any lock bits, the Boot Loader Lock Bits, once set, cannot be cleared again except by a chip erase which will in turn also erase the boot loader itself.

boot_page_fill_safe(address, data)

Same as boot_page_fill() except it waits for eeprom and spm operations to complete before filling the page.

boot_page_erase_safe(address)

Same as boot_page_erase() except it waits for eeprom and spm operations to complete before erasing the page.

boot_page_write_safe(address)

Same as boot_page_write() except it waits for eeprom and spm operations to complete before writing the page.

boot_rww_enable_safe()

Same as boot_rww_enable() except waits for eeprom and spm operations to complete before enabling the RWW mameory.

boot_lock_bits_set_safe(lock_bits)

Same as boot_lock_bits_set() except waits for eeprom and spm operations to complete before setting the lock bits.

file boot.h
#include <avr/eeprom.h>#include <avr/io.h>#include <inttypes.h>#include <limits.h>

Defines

BOOTLOADER_SECTION

Used to declare a function or variable to be placed into a new section called .bootloader. This section and its contents can then be relocated to any address (such as the bootloader NRWW area) at link-time.

__COMMON_ASB
__COMMON_ASRE
BLB12
BLB11
BLB02
BLB01
boot_spm_interrupt_enable()

Enable the SPM interrupt.

boot_spm_interrupt_disable()

Disable the SPM interrupt.

boot_is_spm_interrupt()

Check if the SPM interrupt is enabled.

boot_rww_busy()

Check if the RWW section is busy.

boot_spm_busy()

Check if the SPM instruction is busy.

boot_spm_busy_wait()

Wait while the SPM instruction is busy.

__BOOT_PAGE_ERASE
__BOOT_PAGE_WRITE
__BOOT_PAGE_FILL
__BOOT_RWW_ENABLE
__BOOT_LOCK_BITS_SET
__boot_page_fill_short(address, data)
__boot_page_fill_normal(address, data)
__boot_page_fill_alternate(address, data)
__boot_page_fill_extended(address, data)
__boot_page_fill_extended_short(address, data)
__boot_page_erase_short(address)
__boot_page_erase_normal(address)
__boot_page_erase_alternate(address)
__boot_page_erase_extended(address)
__boot_page_erase_extended_short(address)
__boot_page_write_short(address)
__boot_page_write_normal(address)
__boot_page_write_alternate(address)
__boot_page_write_extended(address)
__boot_page_write_extended_short(address)
__boot_rww_enable_short()
__boot_rww_enable()
__boot_rww_enable_alternate()
__boot_lock_bits_set_short(lock_bits)
__boot_lock_bits_set(lock_bits)
__boot_lock_bits_set_alternate(lock_bits)
GET_LOW_FUSE_BITS

address to read the low fuse bits, using boot_lock_fuse_bits_get

GET_LOCK_BITS

address to read the lock bits, using boot_lock_fuse_bits_get

GET_EXTENDED_FUSE_BITS

address to read the extended fuse bits, using boot_lock_fuse_bits_get

GET_HIGH_FUSE_BITS

address to read the high fuse bits, using boot_lock_fuse_bits_get

boot_lock_fuse_bits_get_short(address)
boot_lock_fuse_bits_get(address)

Read the lock or fuse bits at address.

Parameter address can be any of GET_LOW_FUSE_BITS, GET_LOCK_BITS, GET_EXTENDED_FUSE_BITS, or GET_HIGH_FUSE_BITS.

Note

The lock and fuse bits returned are the physical values, i.e. a bit returned as 0 means the corresponding fuse or lock bit is programmed.

__BOOT_SIGROW_READ
boot_signature_byte_get_short(addr)
boot_signature_byte_get(addr)

Read the Signature Row byte at address. For some MCU types, this function can also retrieve the factory-stored oscillator calibration bytes.

Parameter address can be 0-0x1f as documented by the datasheet.

Note

The values are MCU type dependent.

boot_page_fill(address, data)

Fill the bootloader temporary page buffer for flash address with data word.

Note

The address is a byte address. The data is a word. The AVR writes data to the buffer a word at a time, but addresses the buffer per byte! So, increment your address by 2 between calls, and send 2 data bytes in a word format! The LSB of the data is written to the lower address; the MSB of the data is written to the higher address.

boot_page_erase(address)

Erase the flash page that contains address.

Note

address is a byte address in flash, not a word address.

boot_page_write(address)

Write the bootloader temporary page buffer to flash page that contains address.

Note

address is a byte address in flash, not a word address.

boot_rww_enable()

Enable the Read-While-Write memory section.

boot_lock_bits_set(lock_bits)

Set the bootloader lock bits.

For example, to disallow the SPM instruction from writing to the Boot Loader memory section of flash, you would use this macro as such:

Note

In this context, a 'set bit' will be written to a zero value. Note also that only BLBxx bits can be programmed by this command.

Parameters
  • lock_bits: A mask of which Boot Loader Lock Bits to set.

boot_lock_bits_set (_BV (BLB11));

Note

Like any lock bits, the Boot Loader Lock Bits, once set, cannot be cleared again except by a chip erase which will in turn also erase the boot loader itself.

boot_page_fill_safe(address, data)

Same as boot_page_fill() except it waits for eeprom and spm operations to complete before filling the page.

boot_page_erase_safe(address)

Same as boot_page_erase() except it waits for eeprom and spm operations to complete before erasing the page.

boot_page_write_safe(address)

Same as boot_page_write() except it waits for eeprom and spm operations to complete before writing the page.

boot_rww_enable_safe()

Same as boot_rww_enable() except waits for eeprom and spm operations to complete before enabling the RWW mameory.

boot_lock_bits_set_safe(lock_bits)

Same as boot_lock_bits_set() except waits for eeprom and spm operations to complete before setting the lock bits.

file diskio.c
#include "pff/src/pff.h"#include "pff/src/diskio.h"

Defines

CMD0
CMD1
ACMD41
CMD8
CMD16
CMD17
CMD24
CMD55
CMD58
CT_MMC
CT_SD1
CT_SD2
CT_BLOCK

Functions

void init_spi(void)

Init SPI library.

Return

void.

void deselect(void)
void select(void)
void xmit_spi(BYTE d)
BYTE rcv_spi(void)
void dly_100us(void)
static BYTE send_cmd(BYTE cmd, DWORD arg)
DSTATUS disk_initialize(void)
DRESULT disk_readp(BYTE *buff, DWORD sector, UINT offset, UINT count)

Variables

static BYTE CardType
file diskio.c
#include "diskio.h"

Functions

DSTATUS disk_initialize(void)
DRESULT disk_readp(BYTE *buff, DWORD sector, UINT offset, UINT count)
DRESULT disk_writep(BYTE *buff, DWORD sc)
file diskio.c
#include "pff/src/pff.h"#include "pff/src/diskio.h"

Defines

CMD0
CMD1
ACMD41
CMD8
CMD16
CMD17
CMD24
CMD55
CMD58
CT_MMC
CT_SD1
CT_SD2
CT_BLOCK

Functions

void init_spi(void)

Init SPI library.

Return

void.

void deselect(void)
void select(void)
void xmit_spi(BYTE d)
BYTE rcv_spi(void)
void dly_100us(void)
static BYTE send_cmd(BYTE cmd, DWORD arg)
DSTATUS disk_initialize(void)
DRESULT disk_readp(BYTE *buff, DWORD sector, UINT offset, UINT count)

Variables

static BYTE CardType
file diskio.c
#include "diskio.h"

Functions

DSTATUS disk_initialize(void)
DRESULT disk_readp(BYTE *buff, DWORD sector, UINT offset, UINT count)
DRESULT disk_writep(BYTE *buff, DWORD sc)
file optiboot.c
#include <inttypes.h>#include <avr/io.h>#include <avr/pgmspace.h>#include <avr/eeprom.h>#include <string.h>#include "pff/src/pff.h"#include "boot.h"#include "pin_defs.h"#include "stk500.h"

Defines

FUNC_READ
FUNC_WRITE
OPTIBOOT_MAJVER
OPTIBOOT_MINVER
OPTIBOOT_CUSTOMVER
PGM_READ_BYTE(x)
UART_REPORT
LED_START_FLASHES
BAUD_RATE
UART
BAUD_SETTING
BAUD_ACTUAL
BAUD_ERROR
WATCHDOG_OFF
WATCHDOG_16MS
WATCHDOG_32MS
WATCHDOG_64MS
WATCHDOG_125MS
WATCHDOG_250MS
WATCHDOG_500MS
WATCHDOG_1S
WATCHDOG_2S
WATCHDOG_4S
WATCHDOG_8S
GETLENGTH(len)
RAMSTART
buff
appstart_vec

Functions

unsigned const int __attribute__ ((section(".version")))
static uint8_t pagecmp()
uint8_t doFlash()
void checkFile()
void UART_puts(const char *str)
void UART_newline(void)
void UART_putnibble(uint8_t c)
void UART_puthex(uint8_t c)
void UART_puthex16(uint16_t n)
void UART_puthex32(uint32_t n)
void UART_putsP(const char *str, uint16_t n)
int main(void)
void putch(char ch)
uint8_t getch(void)
void getNch(uint8_t count)
void verifySpace()
void watchdogReset()
void watchdogConfig(uint8_t x)
void appStart(uint8_t rstFlags)
static inline void writebuffer(int8_t memtype, uint8_t *mybuff, uint16_t address, pagelen_t len)
static inline void read_mem(uint8_t memtype, uint16_t address, pagelen_t length)

Variables

const char filename[13] = "FIRMWARE.BIN\0"
file optiboot.c
#include <inttypes.h>#include <avr/io.h>#include <avr/pgmspace.h>#include <avr/eeprom.h>#include <string.h>#include "pff/src/pff.h"#include "ihex/kk_ihex_read.h"#include "boot.h"#include "pin_defs.h"#include "stk500.h"

Defines

FUNC_READ
FUNC_WRITE
OPTIBOOT_MAJVER
OPTIBOOT_MINVER
OPTIBOOT_CUSTOMVER
PGM_READ_BYTE(x)
UART_REPORT
LED_START_FLASHES
BAUD_RATE
UART
BAUD_SETTING
BAUD_ACTUAL
BAUD_ERROR
WATCHDOG_OFF
WATCHDOG_16MS
WATCHDOG_32MS
WATCHDOG_64MS
WATCHDOG_125MS
WATCHDOG_250MS
WATCHDOG_500MS
WATCHDOG_1S
WATCHDOG_2S
WATCHDOG_4S
WATCHDOG_8S
GETLENGTH(len)
RAMSTART
buff
appstart_vec

Functions

unsigned const int __attribute__ ((section(".version")))
void write_flash_page()
static uint8_t pagecmp()
uint8_t doFlash()
void checkFile()
void UART_puts(const char *str)
void UART_newline(void)
void UART_putnibble(uint8_t c)
void UART_puthex(uint8_t c)
void UART_puthex16(uint16_t n)
void UART_puthex32(uint32_t n)
void UART_putsP(const char *str, uint16_t n)
int main(void)
void putch(char ch)
uint8_t getch(void)
void getNch(uint8_t count)
void verifySpace()
void watchdogReset()
void watchdogConfig(uint8_t x)
void appStart(uint8_t rstFlags)
static inline void writebuffer(int8_t memtype, uint8_t *mybuff, uint16_t address, pagelen_t len)
static inline void read_mem(uint8_t memtype, uint16_t address, pagelen_t length)

Variables

const char filename[13] = "FIRMWARE.BIN\0"
file diskio.h
#include "integer.h"

Defines

STA_NOINIT
STA_NODISK

Typedefs

typedef BYTE DSTATUS

Enums

enum DRESULT

Values:

enumerator RES_OK
enumerator RES_ERROR
enumerator RES_NOTRDY
enumerator RES_PARERR
enumerator RES_OK
enumerator RES_ERROR
enumerator RES_NOTRDY
enumerator RES_PARERR

Functions

DSTATUS disk_initialize(void)
DRESULT disk_readp(BYTE *buff, DWORD sector, UINT offser, UINT count)
DRESULT disk_writep(const BYTE *buff, DWORD sc)
file diskio.h
#include "integer.h"

Defines

STA_NOINIT
STA_NODISK

Typedefs

typedef BYTE DSTATUS

Enums

enum DRESULT

Values:

enumerator RES_OK
enumerator RES_ERROR
enumerator RES_NOTRDY
enumerator RES_PARERR
enumerator RES_OK
enumerator RES_ERROR
enumerator RES_NOTRDY
enumerator RES_PARERR

Functions

DSTATUS disk_initialize(void)
DRESULT disk_readp(BYTE *buff, DWORD sector, UINT offser, UINT count)
DRESULT disk_writep(const BYTE *buff, DWORD sc)
file integer.h

Typedefs

typedef unsigned char BYTE
typedef short SHORT
typedef unsigned short WORD
typedef unsigned short WCHAR
typedef int INT
typedef unsigned int UINT
typedef long LONG
typedef unsigned long DWORD
file integer.h

Typedefs

typedef unsigned char BYTE
typedef short SHORT
typedef unsigned short WORD
typedef unsigned short WCHAR
typedef int INT
typedef unsigned int UINT
typedef long LONG
typedef unsigned long DWORD
file pff.c
#include "pff.h"#include "diskio.h"

Defines

_FS_32ONLY
ABORT(err)
_EXCVT
IsUpper(c)
IsLower(c)
IsDBCS1(c)
IsDBCS2(c)
BS_jmpBoot
BS_OEMName
BPB_BytsPerSec
BPB_SecPerClus
BPB_RsvdSecCnt
BPB_NumFATs
BPB_RootEntCnt
BPB_TotSec16
BPB_Media
BPB_FATSz16
BPB_SecPerTrk
BPB_NumHeads
BPB_HiddSec
BPB_TotSec32
BS_55AA
BS_DrvNum
BS_BootSig
BS_VolID
BS_VolLab
BS_FilSysType
BPB_FATSz32
BPB_ExtFlags
BPB_FSVer
BPB_RootClus
BPB_FSInfo
BPB_BkBootSec
BS_DrvNum32
BS_BootSig32
BS_VolID32
BS_VolLab32
BS_FilSysType32
MBR_Table
DIR_Name
DIR_Attr
DIR_NTres
DIR_CrtTime
DIR_CrtDate
DIR_FstClusHI
DIR_WrtTime
DIR_WrtDate
DIR_FstClusLO
DIR_FileSize

Functions

static void mem_set(void *dst, int val, int cnt)
static int mem_cmp(const void *dst, const void *src, int cnt)
static CLUST get_fat(CLUST clst)
static DWORD clust2sect(CLUST clst)
static CLUST get_clust(BYTE *dir)
static FRESULT dir_rewind(DIR *dj)
static FRESULT dir_next(DIR *dj)
static FRESULT dir_find(DIR *dj, BYTE *dir)
static FRESULT create_name(DIR *dj, const char **path)
static FRESULT follow_path(DIR *dj, BYTE *dir, const char *path)
static BYTE check_fs(BYTE *buf, DWORD sect)
FRESULT pf_mount(FATFS *fs)
FRESULT pf_open(const char *path)
FRESULT pf_read(void *buff, UINT btr)

Variables

static FATFS *FatFs
file pff.c
#include "pff.h"#include "diskio.h"

Defines

_FS_32ONLY
ABORT(err)
_EXCVT
IsUpper(c)
IsLower(c)
IsDBCS1(c)
IsDBCS2(c)
BS_jmpBoot
BS_OEMName
BPB_BytsPerSec
BPB_SecPerClus
BPB_RsvdSecCnt
BPB_NumFATs
BPB_RootEntCnt
BPB_TotSec16
BPB_Media
BPB_FATSz16
BPB_SecPerTrk
BPB_NumHeads
BPB_HiddSec
BPB_TotSec32
BS_55AA
BS_DrvNum
BS_BootSig
BS_VolID
BS_VolLab
BS_FilSysType
BPB_FATSz32
BPB_ExtFlags
BPB_FSVer
BPB_RootClus
BPB_FSInfo
BPB_BkBootSec
BS_DrvNum32
BS_BootSig32
BS_VolID32
BS_VolLab32
BS_FilSysType32
MBR_Table
DIR_Name
DIR_Attr
DIR_NTres
DIR_CrtTime
DIR_CrtDate
DIR_FstClusHI
DIR_WrtTime
DIR_WrtDate
DIR_FstClusLO
DIR_FileSize

Functions

static void mem_set(void *dst, int val, int cnt)
static int mem_cmp(const void *dst, const void *src, int cnt)
static CLUST get_fat(CLUST clst)
static DWORD clust2sect(CLUST clst)
static CLUST get_clust(BYTE *dir)
static FRESULT dir_rewind(DIR *dj)
static FRESULT dir_next(DIR *dj)
static FRESULT dir_find(DIR *dj, BYTE *dir)
static FRESULT create_name(DIR *dj, const char **path)
static FRESULT follow_path(DIR *dj, BYTE *dir, const char *path)
static BYTE check_fs(BYTE *buf, DWORD sect)
FRESULT pf_mount(FATFS *fs)
FRESULT pf_open(const char *path)
FRESULT pf_read(void *buff, UINT btr)

Variables

static FATFS *FatFs
file pff.h
#include "integer.h"#include "pffconf.h"

Defines

_PFATFS
CLUST
FA_OPENED
FA_WPRT
FA__WIP
FS_FAT12
FS_FAT16
FS_FAT32
AM_RDO
AM_HID
AM_SYS
AM_VOL
AM_LFN
AM_DIR
AM_ARC
AM_MASK
LD_WORD(ptr)
LD_DWORD(ptr)
ST_WORD(ptr, val)
ST_DWORD(ptr, val)

Enums

enum FRESULT

Values:

enumerator FR_OK
enumerator FR_DISK_ERR
enumerator FR_NOT_READY
enumerator FR_NO_FILE
enumerator FR_NOT_OPENED
enumerator FR_NOT_ENABLED
enumerator FR_NO_FILESYSTEM
enumerator FR_OK
enumerator FR_DISK_ERR
enumerator FR_NOT_READY
enumerator FR_NO_FILE
enumerator FR_NOT_OPENED
enumerator FR_NOT_ENABLED
enumerator FR_NO_FILESYSTEM

Functions

FRESULT pf_mount(FATFS *fs)
FRESULT pf_open(const char *path)
FRESULT pf_read(void *buff, UINT btr)
FRESULT pf_write(const void *buff, UINT btw, UINT *bw)
FRESULT pf_lseek(DWORD ofs)
FRESULT pf_opendir(DIR *dj, const char *path)
FRESULT pf_readdir(DIR *dj, FILINFO *fno)
file pff.h
#include "integer.h"#include "pffconf.h"

Defines

_PFATFS
CLUST
FA_OPENED
FA_WPRT
FA__WIP
FS_FAT12
FS_FAT16
FS_FAT32
AM_RDO
AM_HID
AM_SYS
AM_VOL
AM_LFN
AM_DIR
AM_ARC
AM_MASK
LD_WORD(ptr)
LD_DWORD(ptr)
ST_WORD(ptr, val)
ST_DWORD(ptr, val)

Enums

enum FRESULT

Values:

enumerator FR_OK
enumerator FR_DISK_ERR
enumerator FR_NOT_READY
enumerator FR_NO_FILE
enumerator FR_NOT_OPENED
enumerator FR_NOT_ENABLED
enumerator FR_NO_FILESYSTEM
enumerator FR_OK
enumerator FR_DISK_ERR
enumerator FR_NOT_READY
enumerator FR_NO_FILE
enumerator FR_NOT_OPENED
enumerator FR_NOT_ENABLED
enumerator FR_NO_FILESYSTEM

Functions

FRESULT pf_mount(FATFS *fs)
FRESULT pf_open(const char *path)
FRESULT pf_read(void *buff, UINT btr)
FRESULT pf_write(const void *buff, UINT btw, UINT *bw)
FRESULT pf_lseek(DWORD ofs)
FRESULT pf_opendir(DIR *dj, const char *path)
FRESULT pf_readdir(DIR *dj, FILINFO *fno)
file pffconf.h

Defines

_PFFCONF
_USE_MINIMALISTIC_PFF
_USE_READ
_USE_DIR
_USE_LSEEK
_USE_WRITE
_FS_FAT12
_FS_FAT16
_FS_FAT32
_USE_LCC
_CODE_PAGE
_WORD_ACCESS
file pffconf.h

Defines

_PFFCONF
_USE_MINIMALISTIC_PFF
_USE_READ
_USE_DIR
_USE_LSEEK
_USE_WRITE
_FS_FAT12
_FS_FAT16
_FS_FAT32
_USE_LCC
_CODE_PAGE
_WORD_ACCESS
file pin_defs.h

Defines

UART_SRA
UART_SRB
UART_SRC
UART_SRL
UART_UDR
A0
A1
A2
A3
A4
A5
A6
A7
B0
B1
B2
B3
B4
B5
B6
B7
C0
C1
C2
C3
C4
C5
C6
C7
D0
D1
D2
D3
D4
D5
D6
D7
E0
E1
E2
E3
E4
E5
E6
E7
F0
F1
F2
F3
F4
F5
F6
F7
G0
G1
G2
G3
G4
G5
G6
G7
H0
H1
H2
H3
H4
H5
H6
H7
J0
J1
J2
J3
J4
J5
J6
J7
K0
K1
K2
K3
K4
K5
K6
K7
L0
L1
L2
L3
L4
L5
L6
L7
file pin_defs.h

Defines

UART_SRA
UART_SRB
UART_SRC
UART_SRL
UART_UDR
A0
A1
A2
A3
A4
A5
A6
A7
B0
B1
B2
B3
B4
B5
B6
B7
C0
C1
C2
C3
C4
C5
C6
C7
D0
D1
D2
D3
D4
D5
D6
D7
E0
E1
E2
E3
E4
E5
E6
E7
F0
F1
F2
F3
F4
F5
F6
F7
G0
G1
G2
G3
G4
G5
G6
G7
H0
H1
H2
H3
H4
H5
H6
H7
J0
J1
J2
J3
J4
J5
J6
J7
K0
K1
K2
K3
K4
K5
K6
K7
L0
L1
L2
L3
L4
L5
L6
L7
file spi_pins.h
file spi_pins.h
file stk500.h

Defines

STK_OK
STK_FAILED
STK_UNKNOWN
STK_NODEVICE
STK_INSYNC
STK_NOSYNC
ADC_CHANNEL_ERROR
ADC_MEASURE_OK
PWM_CHANNEL_ERROR
PWM_ADJUST_OK
CRC_EOP
STK_GET_SYNC
STK_GET_SIGN_ON
STK_SET_PARAMETER
STK_GET_PARAMETER
STK_SET_DEVICE
STK_SET_DEVICE_EXT
STK_ENTER_PROGMODE
STK_LEAVE_PROGMODE
STK_CHIP_ERASE
STK_CHECK_AUTOINC
STK_LOAD_ADDRESS
STK_UNIVERSAL
STK_PROG_FLASH
STK_PROG_DATA
STK_PROG_FUSE
STK_PROG_LOCK
STK_PROG_PAGE
STK_PROG_FUSE_EXT
STK_READ_FLASH
STK_READ_DATA
STK_READ_FUSE
STK_READ_LOCK
STK_READ_PAGE
STK_READ_SIGN
STK_READ_OSCCAL
STK_READ_FUSE_EXT
STK_READ_OSCCAL_EXT
STK_SW_MAJOR
STK_SW_MINOR
file stk500.h

Defines

STK_OK
STK_FAILED
STK_UNKNOWN
STK_NODEVICE
STK_INSYNC
STK_NOSYNC
ADC_CHANNEL_ERROR
ADC_MEASURE_OK
PWM_CHANNEL_ERROR
PWM_ADJUST_OK
CRC_EOP
STK_GET_SYNC
STK_GET_SIGN_ON
STK_SET_PARAMETER
STK_GET_PARAMETER
STK_SET_DEVICE
STK_SET_DEVICE_EXT
STK_ENTER_PROGMODE
STK_LEAVE_PROGMODE
STK_CHIP_ERASE
STK_CHECK_AUTOINC
STK_LOAD_ADDRESS
STK_UNIVERSAL
STK_PROG_FLASH
STK_PROG_DATA
STK_PROG_FUSE
STK_PROG_LOCK
STK_PROG_PAGE
STK_PROG_FUSE_EXT
STK_READ_FLASH
STK_READ_DATA
STK_READ_FUSE
STK_READ_LOCK
STK_READ_PAGE
STK_READ_SIGN
STK_READ_OSCCAL
STK_READ_FUSE_EXT
STK_READ_OSCCAL_EXT
STK_SW_MAJOR
STK_SW_MINOR
file kk_ihex.h
#include <stdint.h>

Defines

KK_IHEX_VERSION
IHEX_LINE_MAX_LENGTH
IHEX_LINEAR_ADDRESS(ihex)
IHEX_BYTE_ADDRESS(ihex, byte_index)
IHEX_NEWLINE_STRING

Typedefs

typedef uint_fast8_t ihex_bool_t
typedef uint_least32_t ihex_address_t
typedef uint_least16_t ihex_segment_t
typedef int ihex_count_t
typedef uint8_t ihex_flags_t
typedef struct ihex_state kk_ihex_t
typedef uint8_t ihex_record_type_t

Enums

enum ihex_flags

Values:

enumerator IHEX_FLAG_ADDRESS_OVERFLOW
enum ihex_record_type

Values:

enumerator IHEX_DATA_RECORD
enumerator IHEX_END_OF_FILE_RECORD
enumerator IHEX_EXTENDED_SEGMENT_ADDRESS_RECORD
enumerator IHEX_START_SEGMENT_ADDRESS_RECORD
enumerator IHEX_EXTENDED_LINEAR_ADDRESS_RECORD
enumerator IHEX_START_LINEAR_ADDRESS_RECORD
file kk_ihex_read.c
#include "kk_ihex_read.h"

Defines

IHEX_START
ADDRESS_HIGH_MASK
IHEX_READ_RECORD_TYPE_MASK
IHEX_READ_STATE_MASK
IHEX_READ_STATE_OFFSET

Enums

enum ihex_read_state

Values:

enumerator READ_WAIT_FOR_START
enumerator READ_COUNT_HIGH
enumerator READ_COUNT_LOW
enumerator READ_ADDRESS_MSB_HIGH
enumerator READ_ADDRESS_MSB_LOW
enumerator READ_ADDRESS_LSB_HIGH
enumerator READ_ADDRESS_LSB_LOW
enumerator READ_RECORD_TYPE_HIGH
enumerator READ_RECORD_TYPE_LOW
enumerator READ_DATA_HIGH
enumerator READ_DATA_LOW

Functions

void ihex_begin_read(struct ihex_state *const ihex)
void ihex_read_at_address(struct ihex_state *const ihex, ihex_address_t address)
void ihex_read_at_segment(struct ihex_state *const ihex, ihex_segment_t segment)
void ihex_end_read(struct ihex_state *const ihex)
void ihex_read_byte(struct ihex_state *const ihex, const char byte)
void ihex_read_bytes (struct ihex_state *restrict ihex, const char *restrict data, ihex_count_t count)
file kk_ihex_read.h
#include "kk_ihex.h"

Functions

void ihex_begin_read(struct ihex_state *ihex)
void ihex_read_at_address(struct ihex_state *ihex, ihex_address_t address)
void ihex_read_byte(struct ihex_state *ihex, char chr)
void ihex_read_bytes (struct ihex_state *restrict ihex, const char *restrict data, ihex_count_t count)
void ihex_end_read(struct ihex_state *ihex)
ihex_bool_t ihex_data_read(struct ihex_state *ihex, ihex_record_type_t type, ihex_bool_t checksum_mismatch)
void ihex_read_at_segment(struct ihex_state *ihex, ihex_segment_t segment)
file README.md
file README.md
file README.md
file README.md
file PetitFS.ino
#include "PetitFS.h"#include "kk_ihex_read.h"

Functions

ihex_bool_t ihex_data_read(struct ihex_state *ihex, ihex_record_type_t type, ihex_bool_t checksum_error)
void ihex_read()
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

FATFS fs
file debug_config.h

Defines

SDCARD_LOGGING_FILE_NAME

File name for logging on SD-Card.

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

LCD_TRACE_LEVEL_OFF

Debug level for print error message on lcd interface.

LCD_TRACE_LEVEL_ERROR

Debug level for print error message on lcd.

LCD_TRACE_LEVEL_WARNING

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_INFO

Debug level for print informations message on lcd.

LCD_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on lcd.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

SDCARD_LOGGING_FILE_NAME

File name for logging on SD-Card.

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

LCD_TRACE_LEVEL_OFF

Debug level for print error message on lcd interface.

LCD_TRACE_LEVEL_ERROR

Debug level for print error message on lcd.

LCD_TRACE_LEVEL_WARNING

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_INFO

Debug level for print informations message on lcd.

LCD_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on lcd.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

SDCARD_LOGGING_FILE_NAME

File name for logging on SD-Card.

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

file debug_config.h

Defines

SDCARD_LOGGING_FILE_NAME

File name for logging on SD-Card.

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

file debug_config.h

Defines

SDCARD_LOGGING_FILE_NAME

File name for logging on SD-Card.

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

LCD_TRACE_LEVEL_OFF

Debug level for print error message on lcd interface.

LCD_TRACE_LEVEL_ERROR

Debug level for print error message on lcd.

LCD_TRACE_LEVEL_WARNING

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_INFO

Debug level for print informations message on lcd.

LCD_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on lcd.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

SDCARD_LOGGING_FILE_NAME

File name for logging on SD-Card.

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

LCD_TRACE_LEVEL_OFF

Debug level for print error message on lcd interface.

LCD_TRACE_LEVEL_ERROR

Debug level for print error message on lcd.

LCD_TRACE_LEVEL_WARNING

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_INFO

Debug level for print informations message on lcd.

LCD_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on lcd.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

SDCARD_LOGGING_FILE_NAME

File name for logging on SD-Card.

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

LCD_TRACE_LEVEL_OFF

Debug level for print error message on lcd interface.

LCD_TRACE_LEVEL_ERROR

Debug level for print error message on lcd.

LCD_TRACE_LEVEL_WARNING

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_INFO

Debug level for print informations message on lcd.

LCD_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on lcd.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

SDCARD_LOGGING_FILE_NAME

File name for logging on SD-Card.

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

file debug_config.h

Defines

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

SDCARD_LOGGING_FILE_NAME

File name for logging on SD-Card.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

file debug_config.h

Defines

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

LCD_TRACE_LEVEL_OFF

Debug level for print error message on lcd interface.

LCD_TRACE_LEVEL_ERROR

Debug level for print error message on lcd.

LCD_TRACE_LEVEL_WARNING

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_INFO

Debug level for print informations message on lcd.

LCD_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on lcd.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

LCD_TRACE_LEVEL_OFF

Debug level for print error message on lcd interface.

LCD_TRACE_LEVEL_ERROR

Debug level for print error message on lcd.

LCD_TRACE_LEVEL_WARNING

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_INFO

Debug level for print informations message on lcd.

LCD_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on lcd.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

SERIAL_TRACE_LEVEL_OFF

Debug level for disable debug on serial interface.

SERIAL_TRACE_LEVEL_ERROR

Debug level for print error message on serial interface.

SERIAL_TRACE_LEVEL_WARNING

Debug level for print warning message on serial interface.

SERIAL_TRACE_LEVEL_INFO

Debug level for print informations message on serial interface.

SERIAL_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on serial interface.

SERIAL_TRACE_LEVEL_TRACE

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_OFF

Debug level for print error message on lcd interface.

LCD_TRACE_LEVEL_ERROR

Debug level for print error message on lcd.

LCD_TRACE_LEVEL_WARNING

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_INFO

Debug level for print informations message on lcd.

LCD_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on lcd.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

SENSOR_DRIVER_SERIAL_TRACE_LEVEL

Serial trace level debug for SensorDriver library.

SIM800_SERIAL_TRACE_LEVEL

Serial trace level debug for Sim800 library.

OPC_SERIAL_TRACE_LEVEL

Serial trace level debug for Opcxx library.

I2C_TH_SERIAL_TRACE_LEVEL

Serial trace level debug for i2c-th sketch.

I2C_RAIN_SERIAL_TRACE_LEVEL

Serial trace level debug for i2c-rain sketch.

I2C_OPC_SERIAL_TRACE_LEVEL

Serial trace level debug for i2c-opc sketch.

STIMA_SERIAL_TRACE_LEVEL

Serial trace level debug for stima sketch.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

LCD_TRACE_LEVEL_OFF

Debug level for print error message on lcd interface.

LCD_TRACE_LEVEL_ERROR

Debug level for print error message on lcd.

LCD_TRACE_LEVEL_WARNING

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_INFO

Debug level for print informations message on lcd.

LCD_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on lcd.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file debug_config.h

Defines

ENABLE_SDCARD_LOGGING

Enable logging on SDcard define to 1 the macro to enable logging on a file on SDcard.

LOG_LEVEL

logging level at compile time Available levels are: LOG_LEVEL_SILENT LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARNING LOG_LEVEL_NOTICE LOG_LEVEL_TRACE LOG_LEVEL_VERBOSE

DEBUG_MEMORY

Activate debug of memory use and stack heap collision on serial interface.

LCD_TRACE_LEVEL_OFF

Debug level for print error message on lcd interface.

LCD_TRACE_LEVEL_ERROR

Debug level for print error message on lcd.

LCD_TRACE_LEVEL_WARNING

Debug level for print detailed informations message on serial interface.

LCD_TRACE_LEVEL_INFO

Debug level for print informations message on lcd.

LCD_TRACE_LEVEL_DEBUG

Debug level for print verbose informations message on lcd.

OK_STRING

"OK" string message.

ERROR_STRING

"ERROR" string message.

FAIL_STRING

"FAIL" string message.

YES_STRING

"YES" string message.

NO_STRING

"NO" string message.

ON_STRING

"ON" string message.

OFF_STRING

"OFF" string message.

SAVE_STRING

"SAVE" string message.

STIMA_LCD_TRACE_LEVEL

Lcd trace level debug for stima sketch.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz. 30418,25 Hz : minimum freq with prescaler set to 1 and CPU clock to 16MHz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

I2C_SET_ERROR_COUNT

I2C error count for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz. 30418,25 Hz : minimum freq with prescaler set to 1 and CPU clock to 16MHz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

I2C_SET_ERROR_COUNT

I2C error count for bus restart.

file i2c_config.h

Defines

I2C_HOW_MANY_BUSY_CHECKS_AFTER_STOP
TWI_TIMEOUT
I2C_BUS_CLOCK

I2C bus clock in Hertz. 30418,25 Hz : minimum freq with prescaler set to 1 and CPU clock to 16MHz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz. 30418,25 Hz : minimum freq with prescaler set to 1 and CPU clock to 16MHz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz. 30418,25 Hz : minimum freq with prescaler set to 1 and CPU clock to 16MHz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

I2C_SET_ERROR_COUNT

I2C error count for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz. 30418,25 Hz : minimum freq with prescaler set to 1 and CPU clock to 16MHz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file i2c_config.h

Defines

I2C_BUS_CLOCK

I2C bus clock in Hertz.

I2C_MAX_DATA_LENGTH

Max length in bytes for i2c bus data buffer.

I2C_MAX_ERROR_COUNT

Max i2c error for bus restart.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file json_config.h

Defines

JSON_BUFFER_LENGTH

Length in bytes for JSON data buffer.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_RPC_TOPIC_LENGTH

Length in bytes for mqtt rpc topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_RPC_COMMAND_LENGTH

Length in bytes for mqtt rpc command message.

MQTT_RPC_RESPONSE_LENGTH

Length in bytes for mqtt rpc response message.

MQTT_PACKET_SIZE

Length in bytes for max mqtt packet size.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_RPC_TOPIC
MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_RPC_TOPIC_LENGTH

Length in bytes for mqtt rpc topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_RPC_COMMAND_LENGTH

Length in bytes for mqtt rpc command message.

MQTT_RPC_RESPONSE_LENGTH

Length in bytes for mqtt rpc response message.

MQTT_PACKET_SIZE

Length in bytes for max mqtt packet size.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_RPC_TOPIC
MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_RPC_TOPIC_LENGTH

Length in bytes for mqtt rpc topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_RPC_COMMAND_LENGTH

Length in bytes for mqtt rpc command message.

MQTT_RPC_RESPONSE_LENGTH

Length in bytes for mqtt rpc response message.

MQTT_PACKET_SIZE

Length in bytes for max mqtt packet size.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

STATIONSLUG_LENGTH

Length in bytes for station slug.

BOARDSLUG_LENGTH

Length in bytes for board slug.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_RPC_TOPIC
MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

DEFAULT_STATIONSLUG

Default station slug.

DEFAULT_BOARDSLUG

Default board slug.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_RPC_TOPIC_LENGTH

Length in bytes for mqtt rpc topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_RPC_COMMAND_LENGTH

Length in bytes for mqtt rpc command message.

MQTT_RPC_RESPONSE_LENGTH

Length in bytes for mqtt rpc response message.

MQTT_PACKET_SIZE

Length in bytes for max mqtt packet size.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

STATIONSLUG_LENGTH

Length in bytes for station slug.

BOARDSLUG_LENGTH

Length in bytes for board slug.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_RPC_TOPIC
MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

DEFAULT_STATIONSLUG

Default station slug.

DEFAULT_BOARDSLUG

Default board slug.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_RPC_TOPIC_LENGTH

Length in bytes for mqtt rpc topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_RPC_COMMAND_LENGTH

Length in bytes for mqtt rpc command message.

MQTT_RPC_RESPONSE_LENGTH

Length in bytes for mqtt rpc response message.

MQTT_PACKET_SIZE

Length in bytes for max mqtt packet size.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_RPC_TOPIC
MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file mqtt_config.h

Defines

MQTT_ROOT_TOPIC_LENGTH

Length in bytes for mqtt root topic.

MQTT_MAINT_TOPIC_LENGTH

Length in bytes for mqtt maint topic.

MQTT_SUBSCRIBE_TOPIC_LENGTH

Length in bytes for mqtt subscibe topic.

MQTT_SENSOR_TOPIC_LENGTH

Length in bytes for mqtt sensor topic.

MQTT_CLIENT_ID_LENGTH

Length in bytes for mqtt client id.

MQTT_MESSAGE_LENGTH

Length in bytes for mqtt message.

MQTT_SERVER_LENGTH

Length in bytes for mqtt server.

MQTT_USERNAME_LENGTH

Length in bytes for mqtt username.

MQTT_PASSWORD_LENGTH

Length in bytes for mqtt password.

MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

MQTT_DEFAULT_SERVER

Default MQTT server.

MQTT_DEFAULT_PORT

Default MQTT server port.

MQTT_DEFAULT_ROOT_TOPIC

Default MQTT root topic.

MQTT_DEFAULT_MAINT_TOPIC

Default MQTT maint topic.

MQTT_DEFAULT_SUBSCRIBE_TOPIC

Default MQTT subscibe topic.

MQTT_DEFAULT_USERNAME

Default MQTT username.

MQTT_DEFAULT_PASSWORD

Default MQTT password.

MQTT_STATUS_TOPIC

Default MQTT status topic for printing on connect/disconnect message.

MQTT_ON_CONNECT_MESSAGE

MQTT on connect message.

MQTT_ON_DISCONNECT_MESSAGE

MQTT on disconnect message.

MQTT_ON_ERROR_MESSAGE

MQTT on error message.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SPI_DRIVER_SELECT
USE_SD_CRC
SDFAT_FILE_TYPE
USE_LONG_FILE_NAMES
USE_SEPARATE_FAT_CACHE
USE_EXFAT_BITMAP_CACHE
USE_UTF8_LONG_NAMES
USE_FAT_FILE_FLAG_CONTIGUOUS
ENABLE_DEDICATED_SPI
SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sdcard_config.h

Defines

SDCARD_FILES_NAME_MAX_LENGTH

Length in bytes for sdcard file name data buffer.

file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

RAIN_FOR_TIP

How much mm of rain for one tip of tipping bucket rain gauge.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

RAIN_FOR_TIP

How much mm of rain for one tip of tipping bucket rain gauge.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_DES

Enable if you want use DigitEco Wind Speed sensor.

USE_SENSOR_DED

Enable if you want use DigitEco Wind Direction sensor.

USE_SENSOR_DSR

Enable if you want use DigitEco Global Solar Radiation sensor.

USE_SENSOR_VSR

Enable if you want use 0-2.5V High Resolution Global Solar Radiation sensor.

USE_SENSOR_PWR

Enable if you want use power (solar panel and battery) sensor.

USE_SENSOR_DSA

Enable if you want average Global Solar Radiation sensor.

USE_SENSOR_DWA

Enable if you want vectorial average Wind Speed and Direction over 10'.

USE_SENSOR_DWB

Enable if you want vectorial average Wind Speed and Direction over report time.

USE_SENSOR_DWC

Enable if you want gust Wind Speed and Direction over report time.

USE_SENSOR_DWD

Enable if you want average Wind Speed over report time.

USE_SENSOR_DWE

Enable if you want class Wind Speed over report time.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

RAIN_FOR_TIP

How much mm of rain for one tip of tipping bucket rain gauge.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_DES

Enable if you want use DigitEco Wind Speed sensor.

USE_SENSOR_DED

Enable if you want use DigitEco Wind Direction sensor.

USE_SENSOR_DSR

Enable if you want use DigitEco Global Solar Radiation sensor.

USE_SENSOR_VSR

Enable if you want use 0-2.5V High Resolution Global Solar Radiation sensor.

USE_SENSOR_DSA

Enable if you want average Global Solar Radiation sensor.

USE_SENSOR_DWA

Enable if you want vectorial average Wind Speed and Direction over 10'.

USE_SENSOR_DWB

Enable if you want vectorial average Wind Speed and Direction over report time.

USE_SENSOR_DWC

Enable if you want gust Wind Speed and Direction over report time.

USE_SENSOR_DWD

Enable if you want average Wind Speed over report time.

USE_SENSOR_DWE

Enable if you want class Wind Speed over report time.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

RAIN_FOR_TIP

How much mm of rain for one tip of tipping bucket rain gauge.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file sensors_config.h

Defines

SENSORS_MAX
SENSORS_UNIQUE_MAX
USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
file sensors_config.h

Defines

SENSORS_MAX
SENSORS_UNIQUE_MAX
USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_SPS

Enable if you want use Sensirion SPS30 PM sensor.

USE_SENSOR_SCD

Enable if you want use Sensiorion SCD30 CO2 sensor.

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_SHT
USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_POW

Enable if you want use Power panel and battery sensor.

USE_SENSOR_DES

Enable if you want use DigitEco Wind Speed sensor.

USE_SENSOR_DED

Enable if you want use DigitEco Wind Direction sensor.

USE_SENSOR_DSR

Enable if you want use DigitEco Global Solar Radiation sensor.

USE_SENSOR_VSR

Enable if you want use 0-5V High Resolution Global Solar Radiation sensor.

USE_SENSOR_DSA

Enable if you want average Global Solar Radiation sensor.

USE_SENSOR_DWA

Enable if you want vectorial average Wind Speed and Direction over 10' (WMO).

USE_SENSOR_DWB

Enable if you want vectorial average Wind Speed and Direction over report time.

USE_SENSOR_DWC

Enable if you want gust and long gust Wind Speed over report time.

USE_SENSOR_DWD

Enable if you want average Wind Speed over report time.

USE_SENSOR_DWE

Enable if you want frequency class Wind Speed over report time.

USE_SENSOR_DWF

Enable if you want gust and long gust Wind Direction over report time.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
file sensors_config.h

Defines

SENSORS_MAX
SENSORS_UNIQUE_MAX
USE_THR

Enable if you want use one module for TH and RAIN. Disable if you want use one module for TH and one for RAIN.

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

USE_TH_SENSORS
USE_RAIN_SENSORS
USE_MODULE_THR
USE_MODULE_TH
USE_MODULE_RAIN
file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_DES

Enable if you want use DigitEco Wind Speed sensor.

USE_SENSOR_DED

Enable if you want use DigitEco Wind Direction sensor.

USE_SENSOR_DSR

Enable if you want use DigitEco Global Solar Radiation sensor.

USE_SENSOR_VSR

Enable if you want use 0-5V High Resolution Global Solar Radiation sensor.

USE_SENSOR_DSA

Enable if you want average Global Solar Radiation sensor.

USE_SENSOR_DWA

Enable if you want vectorial average Wind Speed and Direction over 10'.

USE_SENSOR_DWB

Enable if you want vectorial average Wind Speed and Direction over report time.

USE_SENSOR_DWC

Enable if you want gust Wind Speed and Direction over report time.

USE_SENSOR_DWD

Enable if you want average Wind Speed over report time.

USE_SENSOR_DWE

Enable if you want class Wind Speed over report time.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

RAIN_FOR_TIP

How much mm of rain for one tip of tipping bucket rain gauge.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

RAIN_FOR_TIP

How much mm of rain for one tip of tipping bucket rain gauge.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file sensors_config.h

Defines

SENSORS_MAX
SENSORS_UNIQUE_MAX
USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_POW

Enable if you want use Power panel and battery sensor.

USE_SENSOR_DES

Enable if you want use DigitEco Wind Speed sensor.

USE_SENSOR_DED

Enable if you want use DigitEco Wind Direction sensor.

USE_SENSOR_DSR

Enable if you want use DigitEco Global Solar Radiation sensor.

USE_SENSOR_VSR

Enable if you want use 0-5V High Resolution Global Solar Radiation sensor.

USE_SENSOR_DSA

Enable if you want average Global Solar Radiation sensor.

USE_SENSOR_DWA

Enable if you want vectorial average Wind Speed and Direction over 10'.

USE_SENSOR_DWB

Enable if you want vectorial average Wind Speed and Direction over report time.

USE_SENSOR_DWC

Enable if you want gust Wind Speed and Direction over report time.

USE_SENSOR_DWD

Enable if you want average Wind Speed over report time.

USE_SENSOR_DWE

Enable if you want class Wind Speed over report time.

USE_SENSOR_DWF

Enable if you want maximum wind gust speed and direction over report time.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
file sensors_config.h

Defines

SENSORS_MAX
SENSORS_UNIQUE_MAX
USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_SPS

Enable if you want use Sensirion SPS30 PM sensor.

USE_SENSOR_SCD

Enable if you want use Sensiorion SCD30 CO2 sensor.

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_SHT
USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_POW

Enable if you want use Power panel and battery sensor.

USE_SENSOR_DES

Enable if you want use DigitEco Wind Speed sensor.

USE_SENSOR_DED

Enable if you want use DigitEco Wind Direction sensor.

USE_SENSOR_DSR

Enable if you want use DigitEco Global Solar Radiation sensor.

USE_SENSOR_VSR

Enable if you want use 0-5V High Resolution Global Solar Radiation sensor.

USE_SENSOR_DSA

Enable if you want average Global Solar Radiation sensor.

USE_SENSOR_DWA

Enable if you want vectorial average Wind Speed and Direction over 10' (WMO).

USE_SENSOR_DWB

Enable if you want vectorial average Wind Speed and Direction over report time.

USE_SENSOR_DWC

Enable if you want gust and long gust Wind Speed over report time.

USE_SENSOR_DWD

Enable if you want average Wind Speed over report time.

USE_SENSOR_DWE

Enable if you want frequency class Wind Speed over report time.

USE_SENSOR_DWF

Enable if you want gust and long gust Wind Direction over report time.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
file sensors_config.h

Defines

SENSORS_MAX
SENSORS_UNIQUE_MAX
USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_SPS

Enable if you want use Sensirion SPS30 PM sensor.

USE_SENSOR_SCD

Enable if you want use Sensiorion SCD30 CO2 sensor.

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_SHT
USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_POW

Enable if you want use Power panel and battery sensor.

USE_SENSOR_DES

Enable if you want use DigitEco Wind Speed sensor.

USE_SENSOR_DED

Enable if you want use DigitEco Wind Direction sensor.

USE_SENSOR_DSR

Enable if you want use DigitEco Global Solar Radiation sensor.

USE_SENSOR_VSR

Enable if you want use 0-5V High Resolution Global Solar Radiation sensor.

USE_SENSOR_DSA

Enable if you want average Global Solar Radiation sensor.

USE_SENSOR_DWA

Enable if you want vectorial average Wind Speed and Direction over 10' (WMO).

USE_SENSOR_DWB

Enable if you want vectorial average Wind Speed and Direction over report time.

USE_SENSOR_DWC

Enable if you want gust and long gust Wind Speed over report time.

USE_SENSOR_DWD

Enable if you want average Wind Speed over report time.

USE_SENSOR_DWE

Enable if you want frequency class Wind Speed over report time.

USE_SENSOR_DWF

Enable if you want gust and long gust Wind Direction over report time.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

RAIN_FOR_TIP

How much mm of rain for one tip of tipping bucket rain gauge.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

RAIN_FOR_TIP

How much mm of rain for one tip of tipping bucket rain gauge.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

RAIN_FOR_TIP

How much mm of rain for one tip of tipping bucket rain gauge.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file sensors_config.h

Defines

SENSORS_MAX
SENSORS_UNIQUE_MAX
USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_SPS

Enable if you want use Sensirion SPS30 PM sensor.

USE_SENSOR_SCD

Enable if you want use Sensiorion SCD30 CO2 sensor.

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_SHT
USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_POW

Enable if you want use Power panel and battery sensor.

USE_SENSOR_DES

Enable if you want use DigitEco Wind Speed sensor.

USE_SENSOR_DED

Enable if you want use DigitEco Wind Direction sensor.

USE_SENSOR_DSR

Enable if you want use DigitEco Global Solar Radiation sensor.

USE_SENSOR_VSR

Enable if you want use 0-5V High Resolution Global Solar Radiation sensor.

USE_SENSOR_DSA

Enable if you want average Global Solar Radiation sensor.

USE_SENSOR_DWA

Enable if you want vectorial average Wind Speed and Direction over 10' (WMO).

USE_SENSOR_DWB

Enable if you want vectorial average Wind Speed and Direction over report time.

USE_SENSOR_DWC

Enable if you want gust and long gust Wind Speed over report time.

USE_SENSOR_DWD

Enable if you want average Wind Speed over report time.

USE_SENSOR_DWE

Enable if you want frequency class Wind Speed over report time.

USE_SENSOR_DWF

Enable if you want gust and long gust Wind Direction over report time.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
file sensors_config.h

Defines

SENSORS_MAX
SENSORS_UNIQUE_MAX
USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_SPS

Enable if you want use Sensirion SPS30 PM sensor.

USE_SENSOR_SCD

Enable if you want use Sensiorion SCD30 CO2 sensor.

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_SHT
USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_POW

Enable if you want use Power panel and battery sensor.

USE_SENSOR_DES

Enable if you want use DigitEco Wind Speed sensor.

USE_SENSOR_DED

Enable if you want use DigitEco Wind Direction sensor.

USE_SENSOR_DSR

Enable if you want use DigitEco Global Solar Radiation sensor.

USE_SENSOR_VSR

Enable if you want use 0-5V High Resolution Global Solar Radiation sensor.

USE_SENSOR_DSA

Enable if you want average Global Solar Radiation sensor.

USE_SENSOR_DWA

Enable if you want vectorial average Wind Speed and Direction over 10' (WMO).

USE_SENSOR_DWB

Enable if you want vectorial average Wind Speed and Direction over report time.

USE_SENSOR_DWC

Enable if you want gust and long gust Wind Speed over report time.

USE_SENSOR_DWD

Enable if you want average Wind Speed over report time.

USE_SENSOR_DWE

Enable if you want frequency class Wind Speed over report time.

USE_SENSOR_DWF

Enable if you want gust and long gust Wind Direction over report time.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
file sensors_config.h

Defines

USE_JSON

Enable if you want use json library for json response (getJson function in SensorDriver).

USE_SENSOR_ADT

Enable if you want use ADT7420 sensor.

USE_SENSOR_HIH

Enable if you want use HIH6100 sensor.

USE_SENSOR_HYT

Enable if you want use HYT271 or HYT221 sensor.

USE_SENSOR_DEP

Enable if you want use DigitEco Power sensor.

USE_SENSOR_OA2

Enable if you want use OPC PM1, PM2.5, PM10 continuous average value.

USE_SENSOR_OA3
USE_SENSOR_OB2

Enable if you want use OPC PM1, PM2.5, PM10 continuous standard deviation value.

USE_SENSOR_OB3
USE_SENSOR_OC2

Enable if you want use OPC BINS continuous average value.

USE_SENSOR_OC3
USE_SENSOR_OD2

Enable if you want use OPC BINS continuous standard deviation value.

USE_SENSOR_OD3
USE_SENSOR_OE3
USE_SENSOR_LWT

Enable if you want use leaf wetness time continuous value.

USE_SENSOR_HI7

Enable if you want use SI7021 sensor.

USE_SENSOR_BMP

Enable if you want use Bmp085 sensor.

USE_SENSOR_DW1

Enable if you want use DW1 sensor.

USE_SENSOR_TBR

Enable if you want use Tipping bucket rain gauge sensor.

USE_SENSOR_STH

Enable if you want use Temperature and humidity oneshot sensor.

USE_SENSOR_ITH

Enable if you want use Temperature and humidity continuous istantaneous sensor.

USE_SENSOR_NTH

Enable if you want use Temperature and humidity continuous minium sensor.

USE_SENSOR_MTH

Enable if you want use Temperature and humidity continuous average sensor.

USE_SENSOR_XTH

Enable if you want use Temperature and humidity continuous maximum sensor.

USE_SENSOR_SSD

Enable if you want use SSD011 oneshot sensor.

USE_SENSOR_ISD

Enable if you want use SSD011 report istantaneous sensor.

USE_SENSOR_NSD

Enable if you want use SSD011 report minium sensor.

USE_SENSOR_MSD

Enable if you want use SSD011 report average sensor.

USE_SENSOR_XSD

Enable if you want use SSD011 report maximum sensor.

USE_SENSOR_SMI

Enable if you want use MICS4514 oneshot sensor.

USE_SENSOR_IMI

Enable if you want use MICS4514 report istantaneous sensor.

USE_SENSOR_NMI

Enable if you want use MICS4514 report minium sensor.

USE_SENSOR_MMI

Enable if you want use MICS4514 report average sensor.

USE_SENSOR_GWS

Enable if you want use Gill Windsonic sensor.

USE_SENSOR_XMI

Enable if you want use MICS4514 report maximum sensor.

USE_SENSOR_RF24

Enable if you want use Radio RF24 sensor.

RAIN_FOR_TIP

How much mm of rain for one tip of tipping bucket rain gauge.

VALUES_TO_READ_FROM_SENSOR_COUNT

Maximum number of values to be read by the sensors.

JSONS_TO_READ_FROM_SENSOR_COUNT
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

STATISTICAL_DATA_COUNT

How much observations are needed for generating a report.

OBSERVATION_COUNT

Observations buffer length.

OBSERVATION_COUNT_TOLLERANCE

Tolerance of observations for generating a valid report.

file i2c-leaf-config.h
#include <sensors_config.h>

Defines

MODULE_MAIN_VERSION

Module major version.

MODULE_MINOR_VERSION

Module major version.

MODULE_CONFIGURATION_VERSION

Module version of compatibile configuration. If you change it, you have to reconfigure.

MODULE_TYPE

Type of module. It is defined in registers.h.

CONFIGURATION_DEFAULT_IS_ONESHOT

Oneshot mode for default.

CONFIGURATION_DEFAULT_IS_CONTINUOUS

Continuous mode for default.

CONFIGURATION_DEFAULT_I2C_ADDRESS

Default i2c address.

CONFIGURATION_DEFAULT_LEAF_CALIBRATION_THRESHOLD

Default threshold for ADC wet/dry (0-1023).

CONFIGURATION_RESET_PIN

Input pin for reset configuration at startup.

LEAF_POWER_PIN

Output pin for power on and power off leaf sensor.

LEAF_ANALOG_PIN

Input pin for reading leaf sensor value.

SDCARD_CHIP_SELECT_PIN

Chip select for SDcard SPI.

SPI_SPEED

Clock speed for SPI and SDcard.

I2C_MAX_TIME

Max i2c time in seconds before i2c restart.

USE_POWER_DOWN

Enable or disable power down.

DEBOUNCING_POWER_DOWN_TIME_MS

Debounce power down ms.

USE_TIMER_1

Enable or disable timer1.

USE_LEAF_POWER_DOWN

Enable or disable power down for leaf sensor.

WDT_TIMER

Watchdog timer for periodically check microprocessor block states.

Possible value for WDT_TIMER are: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

SENSORS_SAMPLE_TIME_MS

Milliseconds for sampling sensors: 1000 - 60000 [ms] must be integer multiple of TIMER1_INTERRUPT_TIME_MS !!!

TIMER1_INTERRUPT_TIME_MS

Value in milliseconds for generating timer1 interrupt: 100 - 8000 [ms].

TIMER1_TCNT1_VALUE

Timer1 timer overflow with 1024 prescaler at 8 MHz.

TIMER_COUNTER_VALUE_MAX_MS

Maximum timer1 counter value for timed tasks.

LEAF_VALUES_READ_DELAY_MS

Reading delay from measure to get one data.

LEAF_READ_COUNT

Maximum number of leaf reading to get one data.

TRANSACTION_TIMEOUT_MS

Timeout for command transaction.

file i2c-leaf.h
#include "i2c-leaf-config.h"#include <debug.h>#include <i2c_config.h>#include <avr/sleep.h>#include <avr/power.h>#include <avr/wdt.h>#include <i2c_utility.h>#include <rmap_utility.h>#include <eeprom_utility.h>#include <Wire.h>#include <TimeLib.h>#include <typedef.h>#include <registers-leaf.h>#include <debug_config.h>#include <SdFat.h>#include <StreamUtils.h>#include <ArduinoLog.h>

Enums

enum state_t

Main loop finite state machine.

Values:

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator REBOOT

reboot the machine

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enum leaf_reading_state_t

Values:

enumerator LEAF_READING_INIT

init task variables

enumerator LEAF_READING_READ
enumerator LEAF_READING_END

performs end operations and deactivate task

enumerator LEAF_READING_WAIT_STATE

non-blocking waiting time

Functions

void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_system(void)

Init system.

Return

void.

void init_buffers(void)

Init buffers.

Return

void.

void init_tasks(void)

Init tasks variable and state.

Return

void.

void init_pins(void)

Init hardware pins.

Return

void.

void init_wire(void)

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi(void)

Init SPI library.

Return

void.

void init_rtc(void)

Init RTC module.

Return

void.

void init_sensors(void)

Create and setup sensors.

Return

void.

void print_configuration(void)

Print current configuration.

Return

void.

void load_configuration(void)

Load configuration from EEPROM.

Return

void.

void save_configuration(bool)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void commands(void)

Performs specific operations based on the received command.

Return

void.

void reset_samples_buffer(void)

Reset samples buffers to default value.

Return

void.

void reset_report_buffer(void)
void reset_buffer(void)

Reset sample and observations buffers to default value.

Return

void.

void exchange_buffers(void)

Exchange reader and writer pointer to buffer.

Return

void.

template<typename sample_g, typename observation_g, typename value_v>
void addSample(sample_g *sample, observation_g *observation, value_v value)
template<typename observation_g, typename value_v>
value_v readCurrentObservation(observation_g *buffer)
template<typename observation_g, typename value_v>
void writeCurrentObservation(observation_g *buffer, value_v value)
template<typename observation_g, typename length_v>
void resetObservation(observation_g *buffer, length_v length)
template<typename observation_g, typename length_v>
void resetBackPmObservation(observation_g *buffer, length_v length)
template<typename observation_g, typename length_v>
void incrementObservation(observation_g *buffer, length_v length)
template<typename observation_g, typename length_v, typename value_v>
void addObservation(observation_g *buffer, length_v length, value_v value)
template<typename observation_g, typename length_v, typename value_v>
value_v readBackObservation(observation_g *buffer, length_v length)
void samples_processing(bool is_force_processing)

Main routine for processing the samples to calculate an observation.

Return

void.

Parameters
  • is_force_processing: if is true, force the calculation of the observation provided there is a minimum number of samples.

void leaf_reading_task(void)

Sensors reading Task. Read data from sensors.

Return

void.

void command_task(void)

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void i2c_request_interrupt_handler(void)

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(void)

I2C receive interrupt handler.

Return

void.

Variables

configuration_t configuration

Configuration data.

readable_data_t readable_data_1

First readable i2c register.

readable_data_t readable_data_2

Second readable i2c register.

readable_data_t *readable_data_read_ptr

Pointer for read data in i2c readable register.

readable_data_t *readable_data_write_ptr

Pointer for write data in i2c readable register.

readable_data_t *readable_data_temp_ptr

Temporary pointer for exchange read and write pointer for i2c readable register.

writable_data_t writable_data

Writable i2c register.

writable_data_t *writable_data_ptr

Pointer for read and write data in i2c writable register.

uint8_t readable_data_address

Address of readable i2c register.

uint8_t readable_data_length

Number of bytes to read at readable_data_address.

uint8_t i2c_rx_data[I2C_MAX_DATA_LENGTH]

Buffer for i2c received data.

uint8_t lastcommand

last command received.

command to be executed.

uint8_t i2c_error

Number of i2c error.

uint8_t i2c_time

Time in seconds from last I2C reset.

uint8_t ready_tasks_count

Number of tasks ready to execute.

uint32_t awakened_event_occurred_time_ms

System time (in millisecond) when the system has awakened from power down.

bool is_start

Execute start command.

bool is_stop

Execute stop command.

bool is_test_read

Received command is in continuous mode.

bool is_leaf_init
bool is_leaf_wet
uint8_t samples_count

Number of samples to be acquired for make one observation.

bool do_buffers_reset

Force a buffers reset.

uint16_t timer_counter_ms

Timer counter variable for execute timed task with time multiple of base Timer1 time.

state_t state

Current main loop state.

leaf_reading_state_t leaf_reading_state
bool inside_transaction

Status of command transaction.

uint16_t transaction_time

Timer counter variable for compute command transaction timeout.

bool is_event_leaf_reading

Enable or disable the Sensors reading task.

bool is_event_command_task

Enable or disable the Command task.

file i2c-leaf.ino
#include "i2c-leaf.h"

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_buffers()

Init buffers.

Return

void.

void init_tasks()

Init tasks variable and state.

Return

void.

void init_pins()

Init hardware pins.

Return

void.

void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi()

Init SPI library.

Return

void.

void init_rtc()

Init RTC module.

Return

void.

void init_system()

Init system.

Return

void.

void print_configuration()

Print current configuration.

Return

void.

void save_configuration(bool is_default)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void load_configuration()

Load configuration from EEPROM.

Return

void.

void init_sensors()

Create and setup sensors.

Return

void.

ISR(TIMER1_OVF_vect)

Timer1 overflow interrupts routine.

Return

void.

void i2c_request_interrupt_handler()

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

void leaf_reading_task()

Sensors reading Task. Read data from sensors.

Return

void.

void exchange_buffers()

Exchange reader and writer pointer to buffer.

Return

void.

void reset_samples_buffer()

Reset samples buffers to default value.

Return

void.

void reset_report_buffer()
void command_task()

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void copy_buffers()
void commands()

Performs specific operations based on the received command.

Return

void.

file i2c-opc-config.h
#include <sensors_config.h>

Defines

MODULE_VERSION

Module version.

MODULE_TYPE

Type of module. It is defined in registers.h.

CONFIGURATION_DEFAULT_IS_ONESHOT

Oneshot mode for default.

CONFIGURATION_DEFAULT_IS_CONTINUOUS

Continuous mode for default.

CONFIGURATION_DEFAULT_I2C_ADDRESS

Default i2c address.

CONFIGURATION_RESET_PIN

Input pin for reset configuration at startup.

OPC_POWER_PIN

Output pin for power on and power off opc sensor.

OPC_SPI_POWER_PIN
OPC_CHIP_SELECT

Output pin for spi chip select opc sensor.

SDCARD_CHIP_SELECT_PIN

Chip select for SDcard SPI.

SPI_SPEED

Clock speed for SPI and SDcard.

USE_POWER_DOWN

Enable or disable power down.

DEBOUNCING_POWER_DOWN_TIME_MS

Debounce power down ms.

USE_TIMER_1

Enable or disable timer1.

USE_OPC_POWER_DOWN

Enable or disable power down for opc sensor.

WDT_TIMER

Watchdog timer for periodically check microprocessor block states.

Possible value for WDT_TIMER are: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

SENSORS_SAMPLE_TIME_MS

Milliseconds for sampling sensors: 100 - 60000 [ms] must be integer multiple of TIMER1_INTERRUPT_TIME_MS !!!

SENSORS_SAMPLE_COUNT_MIN

Sample count minimum in OBSERVATIONS_MINUTES minutes.

SENSORS_SAMPLE_COUNT_MAX

Sample count maximum in OBSERVATIONS_MINUTES minutes.

SENSORS_SAMPLE_COUNT_TOLERANCE

Maximum invalid sample count for generate a valid observations.

USE_SENSORS_COUNT

Sensors count.

TIMER1_INTERRUPT_TIME_MS

Value in milliseconds for generating timer1 interrupt: 100 - 8000 [ms].

TIMER1_OVERFLOW_TIME_MS

Timer1 timer overflow with 1024 prescaler at 8 or 16 MHz.

Timer1 timer overflow with 1024 prescaler at 8 MHz.

Timer1 timer overflow with 1024 prescaler at 16 MHz.

TIMER1_TCNT1_VALUE

Timer1 timer overflow with 1024 prescaler at 8 MHz.

TIMER1_VALUE_MAX_MS

Maximum timer1 counter value for timed tasks.

OPC_RETRY_COUNT_MAX

Maximum number of retry for opc reading.

file i2c-opc.h
#include "i2c-opc-config.h"#include <debug.h>#include <i2c_config.h>#include <avr/sleep.h>#include <avr/power.h>#include <avr/wdt.h>#include <i2c_utility.h>#include <rmap_utility.h>#include <eeprom_utility.h>#include <Wire.h>#include <TimeLib.h>#include <typedef.h>#include <registers-opc.h>#include <opcxx.h>#include <debug_config.h>#include <SdFat.h>#include <StreamUtils.h>#include <ArduinoLog.h>

Enums

enum state_t

Main loop finite state machine.

Values:

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator REBOOT

reboot the machine

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enum opc_state_t

OPC setup and reading task finite state machine.

Values:

enumerator OPC_INIT
enumerator OPC_SWITCH_ON
enumerator OPC_SEND_COMMAND_FAN_DAC
enumerator OPC_WAIT_RESULT_FAN_DAC
enumerator OPC_SEND_COMMAND_FAN_ON
enumerator OPC_WAIT_RESULT_FAN_ON
enumerator OPC_SEND_COMMAND_LASER_ON
enumerator OPC_WAIT_RESULT_LASER_ON
enumerator OPC_SEND_COMMAND_READ_HISTOGRAM
enumerator OPC_WAIT_RESULT_READ_HISTOGRAM
enumerator OPC_READ_HISTOGRAM
enumerator OPC_END

performs end operations and deactivate task

enumerator OPC_WAIT_STATE

non-blocking waiting time

Functions

void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_system(void)

Init system.

Return

void.

void init_buffers(void)

Init buffers.

Return

void.

void init_tasks(void)

Init tasks variable and state.

Return

void.

void init_pins(void)

Init hardware pins.

Return

void.

void init_wire(void)

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi(void)

Init SPI library.

Return

void.

void init_rtc(void)

Init RTC module.

Return

void.

void init_sensors(void)

Create and setup sensors.

Return

void.

void print_configuration(void)

Print current configuration.

Return

void.

void load_configuration(void)

Load configuration from EEPROM.

Return

void.

void save_configuration(bool)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void commands(void)

Performs specific operations based on the received command.

Return

void.

void reset_samples_buffer(void)

Reset samples buffers to default value.

Return

void.

void exchange_buffers(void)

Exchange reader and writer pointer to buffer.

Return

void.

template<typename sample_g, typename observation_g, typename values_v, typename value_v>
void addSample(sample_g *sample, observation_g *observation, values_v *values, value_v value)
template<typename observation_g, typename value_v>
value_v readCurrentObservation(observation_g *buffer)
template<typename observation_g, typename value_v>
void writeCurrentObservation(observation_g *buffer, value_v value)
template<typename observation_g, typename length_v>
void resetObservation(observation_g *buffer, length_v length)
template<typename observation_g, typename length_v>
void resetBackPmObservation(observation_g *buffer, length_v length)
template<typename observation_g, typename length_v>
void incrementObservation(observation_g *buffer, length_v length)
template<typename observation_g, typename length_v, typename value_v>
void addObservation(observation_g *buffer, length_v length, value_v value)
template<typename observation_g, typename length_v, typename value_v>
value_v readBackObservation(observation_g *buffer, length_v length)
void samples_processing(bool is_force_processing)

Main routine for processing the samples to calculate an observation.

Return

void.

Parameters
  • is_force_processing: if is true, force the calculation of the observation provided there is a minimum number of samples.

bool observations_processing(void)

Main routine for processing the observations to calculate a value for report.

Return

void.

template<typename sample_g, typename observation_g>
bool make_observation_from_samples(bool is_force_processing, sample_g *sample, observation_g *observation)
template<typename sample_g, typename observation_g, typename value_v, typename val_v>
bool make_value_from_samples_and_observations(sample_g *sample, observation_g *observation, value_v *value)
void opc_task(void)

Opc setup and reading Task. Read data from OPC.

Return

void.

void command_task(void)

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void i2c_request_interrupt_handler(void)

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(void)

Variables

configuration_t configuration
readable_data_t readable_data_1
readable_data_t readable_data_2
readable_data_t *readable_data_read_ptr
readable_data_t *readable_data_write_ptr
readable_data_t *readable_data_temp_ptr
writable_data_t writable_data
writable_data_t *writable_data_ptr
uint8_t readable_data_address
uint8_t readable_data_length
uint8_t i2c_rx_data[I2C_MAX_DATA_LENGTH]
uint8_t i2c_error
uint8_t ready_tasks_count
uint32_t awakened_event_occurred_time_ms
bool is_start
bool is_stop
bool is_oneshot

Received command is in oneshot mode.

bool is_continuous

Received command is in continuous mode.

sample_t pm1_samples
sample_t pm25_samples
sample_t pm10_samples
sample_t bins_samples[OPC_BINS_LENGTH]
float_observation_t pm1_observations
float_observation_t pm25_observations
float_observation_t pm10_observations
uint16_observation_t bins_observations[OPC_BINS_LENGTH]
uint8_t samples_count
bool do_buffers_reset
uint16_t timer_counter

Timer counter variable for execute timed task with time multiple of base Timer1 time.

state_t state
opc_state_t opc_state

Current sensors reading task state.

bool is_opc_setted
bool is_opc_first_read
uint8_t histogram_error_count
bool is_event_opc_task

Enable or disable the OPC task.

bool is_event_command_task
file i2c-opc.ino
#include "i2c-opc.h"

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_buffers()

Init buffers.

Return

void.

void init_tasks()

Init tasks variable and state.

Return

void.

void init_pins()

Init hardware pins.

Return

void.

void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi()

Init SPI library.

Return

void.

void init_rtc()

Init RTC module.

Return

void.

void init_system()

Init system.

Return

void.

void print_configuration()

Print current configuration.

Return

void.

void save_configuration(bool is_default)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void load_configuration()

Load configuration from EEPROM.

Return

void.

void init_sensors()

Create and setup sensors.

Return

void.

ISR(TIMER1_OVF_vect)
void i2c_request_interrupt_handler()

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

template<typename sample_g, typename observation_g, typename values_v, typename value_v>
void addSample(sample_g *sample, observation_g *observation, values_v *values, value_v value)
template<typename observation_g, typename value_v>
value_v readCurrentObservation(observation_g *buffer)
template<typename observation_g, typename value_v>
void writeCurrentObservation(observation_g *buffer, value_v value)
template<typename observation_g, typename length_v>
void resetObservation(observation_g *buffer, length_v length)
template<typename observation_g, typename length_v>
void resetBackObservation(observation_g *buffer, length_v length)
template<typename observation_g, typename length_v>
void incrementObservation(observation_g *buffer, length_v length)
template<typename observation_g, typename length_v, typename value_v>
void addObservation(observation_g *buffer, length_v length, value_v value)
template<typename observation_g, typename length_v, typename value_v>
value_v readBackObservation(observation_g *buffer, length_v length)
void samples_processing(bool is_force_processing)

Main routine for processing the samples to calculate an observation.

Return

void.

Parameters
  • is_force_processing: if is true, force the calculation of the observation provided there is a minimum number of samples.

template<typename sample_g, typename observation_g>
bool make_observation_from_samples(bool is_force_processing, sample_g *sample, observation_g *observation)
bool observations_processing()

Main routine for processing the observations to calculate a value for report.

Return

void.

template<typename sample_g, typename observation_g, typename value_v, typename val_v>
bool make_value_from_samples_and_observations(sample_g *sample, observation_g *observation, value_v *value)
void opc_task()

Opc setup and reading Task. Read data from OPC.

Return

void.

void exchange_buffers()

Exchange reader and writer pointer to buffer.

Return

void.

void reset_samples_buffer()

Reset samples buffers to default value.

Return

void.

void reset_observations_buffer()

Reset observations buffers to default value.

Return

void.

void command_task()

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void tests()

Performs specific operations based on the received command.

Performs tests operations based on the received command.

Return

void.

void commands()

Performs specific operations based on the received command.

Return

void.

file i2c-power-config.h
#include <sensors_config.h>

Defines

MODULE_MAIN_VERSION

Module main version.

MODULE_MINOR_VERSION

Module minor version.

MODULE_CONFIGURATION_VERSION

Module version of compatibile configuration. If you change it, you have to reconfigure.

MODULE_TYPE

Type of module. It is defined in stima_module.h.

CONFIGURATION_DEFAULT_ONESHOT
CONFIGURATION_DEFAULT_I2C_ADDRESS

Default i2c address.

CONFIGURATION_RESET_PIN

Input pin for reset configuration at startup.

POWER_ADC_CHANNEL_INPUT_PANEL

Input channel for panel.

POWER_ADC_CHANNEL_INPUT_BATTERY

Input channel for battery.

ADC_GND_I2C_ADDRESS
ADC_VDD_I2C_ADDRESS
ADC_SCL_I2C_ADDRESS
ADC_SDA_I2C_ADDRESS
ADC_I2C_ADDRESS
CONFIGURATION_DEFAULT_ADC_VOLTAGE_MAX_PANEL
CONFIGURATION_DEFAULT_ADC_VOLTAGE_MAX_BATTERY
SDCARD_CHIP_SELECT_PIN

Chip select for SDcard SPI.

SPI_SPEED

Clock speed for SPI and SDcard.

USE_POWER_DOWN

Enable or disable power down.

DEBOUNCING_POWER_DOWN_TIME_MS

Debounce power down ms.

USE_TIMER_1

Enable or disable timer1.

WDT_TIMER

Watchdog timer for periodically check microprocessor block states.

Possible value for WDT_TIMER are: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

SENSORS_SAMPLE_TIME_MS

Milliseconds for sampling sensors: 100 - 60000 [ms] must be integer multiple of TIMER1_INTERRUPT_TIME_MS !!!

RMAP_REPORT_SAMPLE_ERROR_MAX_PERC

Sample maximum error in percent for one observation.

RMAP_REPORT_SAMPLE_MIN_TIME

Sample minimun time for elaborate one observation (seconds).

USE_SENSORS_COUNT

Sensors count.

TIMER1_INTERRUPT_TIME_MS

Value in milliseconds for generating timer1 interrupt: 100 - 8000 [ms].

TIMER1_TCNT1_VALUE

Timer1 timer overflow with 1024 prescaler at 16 MHz.

TIMER_COUNTER_VALUE_MAX_MS

Maximum timer1 counter value for timed tasks.

TIMER_COUNTER_VALUE_MAX_S
TRANSACTION_TIMEOUT_MS

Timeout for command transaction.

file i2c-power.h
#include "i2c-power-config.h"#include <debug.h>#include <i2c_config.h>#include <avr/sleep.h>#include <avr/power.h>#include <avr/wdt.h>#include <i2c_utility.h>#include <rmap_utility.h>#include <sdcard_utility.h>#include <eeprom_utility.h>#include <Wire.h>#include <TimeLib.h>#include <typedef.h>#include <ADS1115.h>#include <registers-power.h>#include <debug_config.h>#include <SdFat.h>#include <StreamUtils.h>#include <ArduinoLog.h>

Enums

enum state_t

Main loop finite state machine.

Values:

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator REBOOT

reboot the machine

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enum power_state_t

POWER setup and reading task finite state machine.

Values:

enumerator POWER_INIT
enumerator POWER_READING_PANEL
enumerator POWER_READING_BATTERY
enumerator POWER_ELABORATE
enumerator POWER_END

performs end operations and deactivate task

enumerator POWER_WAIT_STATE

non-blocking waiting time

enum power_hr_state_t

Values:

enumerator POWER_HR_INIT
enumerator POWER_HR_READ
enumerator POWER_HR_EVALUATE
enumerator POWER_HR_PROCESS
enumerator POWER_HR_END

performs end operations and deactivate task

enumerator POWER_HR_WAIT_STATE

non-blocking waiting time

Functions

ADS1115 adc1(ADC_I2C_ADDRESS)
void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_system(void)

Init system.

Return

void.

void init_buffers(void)

Init buffers.

Return

void.

void init_tasks(void)

Init tasks variable and state.

Return

void.

void init_pins(void)

Init hardware pins.

Return

void.

void init_wire(void)

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_adc(void)

Init ADC converter.

Init ADC hardware.

Return

void.

void init_spi(void)

Init SPI library.

Return

void.

void init_rtc(void)

Init RTC module.

Return

void.

void init_sensors(void)

Create and setup sensors.

Return

void.

void print_configuration(void)

Print current configuration.

Return

void.

void load_configuration(void)

Load configuration from EEPROM.

Return

void.

void save_configuration(bool)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void commands(void)

Performs specific operations based on the received command.

Return

void.

void tests(void)

Performs specific operations based on the received command.

Performs tests operations based on the received command.

Return

void.

void reset_buffer(void)

Reset sample and observations buffers to default value.

Return

void.

void exchange_buffers(void)

Exchange reader and writer pointer to buffer.

Return

void.

void make_report(bool init = false)

Main routine for processing the samples to calculate an observation.

Return

void.

void power_task(void)

Setup and reading Task. Read voltage from panel and battery.

Return

void.

void power_task_hr(void)

Setup and reading Task. Read voltage from panel and battery Higt resolution.

Return

void.

void command_task(void)

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void i2c_request_interrupt_handler(void)

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(void)

Variables

configuration_t configuration
readable_data_t readable_data_1
readable_data_t readable_data_2
readable_data_t *readable_data_read_ptr
readable_data_t *readable_data_write_ptr
readable_data_t *readable_data_temp_ptr
writable_data_t writable_data
writable_data_t *writable_data_ptr
uint8_t readable_data_address
uint8_t readable_data_length
uint8_t i2c_rx_data[I2C_MAX_DATA_LENGTH]
uint8_t i2c_error
uint8_t ready_tasks_count
uint32_t awakened_event_occurred_time_ms
bool inside_transaction
uint16_t transaction_time
uint8_t lastcommand
bool is_start
bool is_stop
bool is_test_read
bool is_oneshot
bool is_continuous
bool is_test

Received command is in test mode.

If true, reading value from sensors for testing purpose.

Execute stop command in test mode.

int16_t sample_panel
int16_t sample_battery
int16_t average_panel
int16_t average_battery
uint16_t samples_count_panel

Number of samples to be acquired for make one panel observation.

uint16_t samples_error_count_panel

Number of error while acquire samples for make one panel observation.

uint16_t samples_count_battery

Number of samples to be acquired for make one battery observation.

uint16_t samples_error_count_battery

Number of error while acquire samples for make one battery observation.

uint16_t timer_counter_ms
uint16_t timer_counter_s
state_t state
power_state_t power_state

Current sensors reading task state.

bool is_event_power_task

Enable or disable the POWER task.

bool is_event_command_task
file i2c-power.ino
#include "i2c-power.h"

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_buffers()

Init buffers.

Return

void.

void init_tasks()

Init tasks variable and state.

Return

void.

void init_pins()

Init hardware pins.

Return

void.

void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_adc()

Init ADC converter.

Init ADC hardware.

Return

void.

void init_spi()

Init SPI library.

Return

void.

void init_rtc()

Init RTC module.

Return

void.

void init_system()

Init system.

Return

void.

void print_configuration()

Print current configuration.

Return

void.

void save_configuration(bool is_default)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void load_configuration()

Load configuration from EEPROM.

Return

void.

void init_sensors()

Create and setup sensors.

Return

void.

void i2c_request_interrupt_handler()

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

void make_report(bool init)

Main routine for processing the samples to calculate an observation.

Return

void.

void power_task()

Setup and reading Task. Read voltage from panel and battery.

Return

void.

void exchange_buffers()

Exchange reader and writer pointer to buffer.

Return

void.

void reset_samples_buffer()

Reset samples buffers to default value.

Return

void.

void reset_data(volatile readable_data_t *ptr)
void command_task()

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void copy_buffers()
void commands()

Performs specific operations based on the received command.

Return

void.

file i2c-radiation-config.h
#include <sensors_config.h>

Defines

MODULE_MAIN_VERSION

Module main version.

MODULE_MINOR_VERSION

Module minor version.

MODULE_CONFIGURATION_VERSION

Module version of compatibile configuration. If you change it, you have to reconfigure.

MODULE_TYPE

Type of module. It is defined in registers.h.

CONFIGURATION_DEFAULT_ONESHOT
CONFIGURATION_DEFAULT_I2C_ADDRESS

Default i2c address.

CONFIGURATION_RESET_PIN

Input pin for reset configuration at startup.

ADC_GND_I2C_ADDRESS
ADC_VDD_I2C_ADDRESS
ADC_SCL_I2C_ADDRESS
ADC_SDA_I2C_ADDRESS
ADC_I2C_ADDRESS
CONFIGURATION_DEFAULT_ADC_VOLTAGE_OFFSET_1
CONFIGURATION_DEFAULT_ADC_VOLTAGE_OFFSET_2
CONFIGURATION_DEFAULT_ADC_VOLTAGE_GAIN_1
CONFIGURATION_DEFAULT_ADC_VOLTAGE_GAIN_2
CONFIGURATION_DEFAULT_ADC_VOLTAGE_MIN
CONFIGURATION_DEFAULT_ADC_VOLTAGE_MAX
CONFIGURATION_DEFAULT_ADC_VOLTAGE_OFFSET
CONFIGURATION_DEFAULT_ADC_VOLTAGE_GAIN
CONFIGURATION_DEFAULT_SENSOR_VOLTAGE_MAX
CONFIGURATION_DEFAULT_SENSOR_RADIATION_MAX
ACQUISITION_COUNT_FOR_POWER_RESET
SDCARD_CHIP_SELECT_PIN

Chip select for SDcard SPI.

SPI_SPEED

Clock speed for SPI and SDcard.

USE_POWER_DOWN

Enable or disable power down.

DEBOUNCING_POWER_DOWN_TIME_MS

Debounce power down ms.

USE_TIMER_1

Enable or disable timer1.

WDT_TIMER

Watchdog timer for periodically check microprocessor block states.

Possible value for WDT_TIMER are: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

SENSORS_SAMPLE_TIME_MS

Milliseconds for sampling sensors: 100 - 60000 [ms] must be integer multiple of TIMER1_INTERRUPT_TIME_MS !!!

RMAP_REPORT_SAMPLE_ERROR_MAX_PERC

Sample maximum error in percent for one observation.

RMAP_REPORT_SAMPLE_MIN_TIME

Sample minimun time for elaborate one observation (seconds).

USE_SENSORS_COUNT

Sensors count.

TIMER1_INTERRUPT_TIME_MS

Value in milliseconds for generating timer1 interrupt: 100 - 8000 [ms].

TIMER1_TCNT1_VALUE

Timer1 timer overflow with 1024 prescaler at 16 MHz.

TIMER_COUNTER_VALUE_MAX_MS

Maximum timer1 counter value for timed tasks.

TIMER_COUNTER_VALUE_MAX_S
SOLAR_RADIATION_READ_DELAY_MS

Reading delay.

SOLAR_RADIATION_VALUES_READ_DELAY_MS

Reading delay.

SOLAR_RADIATION_READ_COUNT

number of read.

TRANSACTION_TIMEOUT_MS

Timeout for command transaction.

file i2c-radiation.h
#include "i2c-radiation-config.h"#include <debug.h>#include <i2c_config.h>#include <avr/sleep.h>#include <avr/power.h>#include <avr/wdt.h>#include <i2c_utility.h>#include <rmap_utility.h>#include <sdcard_utility.h>#include <eeprom_utility.h>#include <Wire.h>#include <TimeLib.h>#include <typedef.h>#include <ADS1115.h>#include <registers-radiation.h>#include <debug_config.h>#include <SdFat.h>#include <StreamUtils.h>#include <ArduinoLog.h>

Enums

enum state_t

Main loop finite state machine.

Values:

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator REBOOT

reboot the machine

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enum solar_radiation_state_t

RADIATION setup and reading task finite state machine.

Values:

enumerator SOLAR_RADIATION_INIT
enumerator SOLAR_RADIATION_READING
enumerator SOLAR_RADIATION_ELABORATE
enumerator SOLAR_RADIATION_END

performs end operations and deactivate task

enumerator SOLAR_RADIATION_WAIT_STATE

non-blocking waiting time

enum solar_radiation_hr_state_t

Values:

enumerator SOLAR_RADIATION_HR_INIT
enumerator SOLAR_RADIATION_HR_READ
enumerator SOLAR_RADIATION_HR_EVALUATE
enumerator SOLAR_RADIATION_HR_PROCESS
enumerator SOLAR_RADIATION_HR_END

performs end operations and deactivate task

enumerator SOLAR_RADIATION_HR_WAIT_STATE

non-blocking waiting time

Functions

void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_system(void)

Init system.

Return

void.

void init_buffers(void)

Init buffers.

Return

void.

void init_tasks(void)

Init tasks variable and state.

Return

void.

void init_pins(void)

Init hardware pins.

Return

void.

void init_wire(void)

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi(void)

Init SPI library.

Return

void.

void init_adc(void)

Init ADC converter.

Init ADC hardware.

Return

void.

void init_rtc(void)

Init RTC module.

Return

void.

void init_sensors(void)

Create and setup sensors.

Return

void.

void print_configuration(void)

Print current configuration.

Return

void.

void load_configuration(void)

Load configuration from EEPROM.

Return

void.

void save_configuration(bool)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void commands(void)

Performs specific operations based on the received command.

Return

void.

void tests(void)

Performs specific operations based on the received command.

Performs tests operations based on the received command.

Return

void.

void reset_buffer(void)

Reset sample and observations buffers to default value.

Return

void.

void exchange_buffers(void)

Exchange reader and writer pointer to buffer.

Return

void.

void make_report(bool init = false)

Main routine for processing the samples to calculate an observation.

Return

void.

void solar_radiation_task(void)

Wind setup and reading Task. Read data from RADIATION.

Return

void.

void solar_radiation_task_hr(void)

Wind setup and reading Task. Read data from RADIATION.

Return

void.

void command_task(void)

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void i2c_request_interrupt_handler(void)

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(void)

Variables

configuration_t configuration
readable_data_t readable_data_1
readable_data_t readable_data_2
readable_data_t *readable_data_read_ptr
readable_data_t *readable_data_write_ptr
readable_data_t *readable_data_temp_ptr
writable_data_t writable_data
writable_data_t *writable_data_ptr
uint8_t readable_data_address
uint8_t readable_data_length
uint8_t i2c_rx_data[I2C_MAX_DATA_LENGTH]
uint8_t i2c_error
uint8_t ready_tasks_count
uint32_t awakened_event_occurred_time_ms
bool inside_transaction
uint16_t transaction_time
uint8_t lastcommand
bool is_start
bool is_stop
bool is_test_read
bool is_oneshot
bool is_continuous
bool is_test
int16_t sample
int16_t average
uint8_t solar_radiation_acquisition_count
uint16_t samples_count
uint16_t samples_error_count

Number of error while acquire samples for make one observation.

uint16_t timer_counter_ms
uint16_t timer_counter_s
state_t state
solar_radiation_state_t solar_radiation_state

Current sensors reading task state.

solar_radiation_hr_state_t solar_radiation_hr_state
bool is_event_solar_radiation_task

Enable or disable the RADIATION task.

bool is_event_command_task
file i2c-radiation.ino
#include "i2c-radiation.h"

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_buffers()

Init buffers.

Return

void.

void init_tasks()

Init tasks variable and state.

Return

void.

void init_pins()

Init hardware pins.

Return

void.

void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi()

Init SPI library.

Return

void.

void init_adc()

Init ADC converter.

Init ADC hardware.

Return

void.

void init_rtc()

Init RTC module.

Return

void.

void init_system()

Init system.

Return

void.

void print_configuration()

Print current configuration.

Return

void.

void save_configuration(bool is_default)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void load_configuration()

Load configuration from EEPROM.

Return

void.

void init_sensors()

Create and setup sensors.

Return

void.

void i2c_request_interrupt_handler()

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

void make_report(bool init)

Main routine for processing the samples to calculate an observation.

Return

void.

void exchange_buffers()

Exchange reader and writer pointer to buffer.

Return

void.

void reset_samples_buffer()

Reset samples buffers to default value.

Return

void.

void reset_data(volatile readable_data_t *ptr)
void command_task()

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void copy_buffers()
void commands()

Performs specific operations based on the received command.

Return

void.

file i2c-rain-config.h
#include <sensors_config.h>

Defines

MODULE_MAIN_VERSION

Module main version.

MODULE_MINOR_VERSION

Module minor version.

MODULE_CONFIGURATION_VERSION

Module version of compatibile configuration. If you change it, you have to reconfigure.

MODULE_TYPE

Type of module. It is defined in registers.h.

TIPPING_BUCKET_PIN

Interrupt pin for tipping bucket rain gauge.

CONFIGURATION_DEFAULT_TIPPING_BUCKET_TIME_MS

Tipping bucket time in milliseconds.

CONFIGURATION_DEFAULT_RAIN_FOR_TIP

brief How much mm/10 of rain for one tip of tipping bucket rain gauge.

CONFIGURATION_DEFAULT_IS_ONESHOT

Oneshot mode for default.

CONFIGURATION_DEFAULT_IS_CONTINUOUS

Continuous mode for default.

CONFIGURATION_DEFAULT_I2C_ADDRESS

Default i2c address.

CONFIGURATION_RESET_PIN

Input pin for reset configuration at startup.

SDCARD_CHIP_SELECT_PIN

Chip select for SDcard SPI.

SPI_SPEED

Clock speed for SPI and SDcard.

I2C_MAX_TIME

Max i2c time in seconds before i2c restart.

USE_POWER_DOWN

Enable or disable power down.

DEBOUNCING_POWER_DOWN_TIME_MS

Debounce power down ms.

USE_TIMER_1

Enable or disable timer1.

WDT_TIMER

Watchdog timer for periodically check microprocessor block states.

Possible value for WDT_TIMER are: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

TIMER1_INTERRUPT_TIME_MS

Value in milliseconds for generating timer1 interrupt: 100 - 8000 [ms].

TIMER1_TCNT1_VALUE

Timer1 timer overflow with 1024 prescaler.

TRANSACTION_TIMEOUT_MS

Timeout for command transaction.

file i2c-rain.h
#include "i2c-rain-config.h"#include <debug.h>#include <i2c_config.h>#include <avr/sleep.h>#include <avr/power.h>#include <avr/wdt.h>#include <i2c_utility.h>#include <rmap_utility.h>#include <sdcard_utility.h>#include <eeprom_utility.h>#include <Wire.h>#include <typedef.h>#include <registers-rain.h>#include <debug_config.h>#include <SdFat.h>#include <StreamUtils.h>#include <ArduinoLog.h>

Enums

enum state_t

Main loop finite state machine.

Values:

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator REBOOT

reboot the machine

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enum tipping_bucket_state_t

Tipping bucket task finite state machine.

Values:

enumerator TIPPING_BUCKET_INIT

init task variables and wait half debounce time

enumerator TIPPING_BUCKET_READ

read rain tips from variable shared with tipping bucket interrupt, validate it for spike re-reading tipping bucket signal and wait double debounce time

enumerator TIPPING_BUCKET_COUNT

validate re-reading tipping bucket signal and increment total tips

enumerator TIPPING_BUCKET_END

wait for the tipping bucket switch return open and performs end operations and deactivate task

enumerator TIPPING_BUCKET_WAIT_STATE

non-blocking waiting time

Functions

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_system(void)

Init system.

Return

void.

void init_buffers(void)

Init buffers.

Return

void.

void init_tasks(void)

Init tasks variable and state.

Return

void.

void init_pins(void)

Init hardware pins.

Return

void.

void init_wire(void)

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi(void)

Init SPI library.

Return

void.

void init_rtc(void)

Init RTC module.

Return

void.

void init_sensors(void)

Create and setup sensors.

Return

void.

void print_configuration(void)

Print current configuration.

Return

void.

void load_configuration(void)

Load configuration from EEPROM.

Return

void.

void save_configuration(bool)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void commands(void)

Performs specific operations based on the received command.

Return

void.

void tests(void)

Performs specific operations based on the received command.

Performs tests operations based on the received command.

Return

void.

void reset_buffers(void)

Reset buffers to default value.

Return

void.

void exchange_buffers(void)

Exchange reader and writer pointer to buffer.

Return

void.

void init_logging()

Init logging system.

Return

void.

void tipping_bucket_task(void)

Tipping bucket task.

Return

void.

void command_task(void)

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void i2c_request_interrupt_handler(void)

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

void tipping_bucket_interrupt_handler(void)

Tipping bucket interrupt handler.

Return

void.

Variables

configuration_t configuration
readable_data_t readable_data_1
readable_data_t readable_data_2
readable_data_t *readable_data_read_ptr
readable_data_t *readable_data_write_ptr
readable_data_t *readable_data_temp_ptr
writable_data_t writable_data
writable_data_t *writable_data_ptr
uint8_t readable_data_address
uint8_t readable_data_length
uint8_t i2c_rx_data[I2C_MAX_DATA_LENGTH]
uint8_t lastcommand
uint8_t i2c_error
uint8_t i2c_time
uint8_t ready_tasks_count
uint32_t awakened_event_occurred_time_ms
bool inside_transaction
uint16_t transaction_time
bool is_start
bool is_stop
bool is_test
bool is_started

Start command is active and measure is active.

rain_t rain

Rain data.

state_t state
tipping_bucket_state_t tipping_bucket_state

Current tipping bucket task state.

bool is_event_tipping_bucket

Enable or disable the Tipping Bucket task.

bool is_event_command_task
file i2c-rain.ino
#include "i2c-rain.h"

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_buffers()

Init buffers.

Return

void.

void init_tasks()

Init tasks variable and state.

Return

void.

void init_pins()

Init hardware pins.

Return

void.

void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi()

Init SPI library.

Return

void.

void init_rtc()

Init RTC module.

Return

void.

void init_system()

Init system.

Return

void.

void init_sensors()

Create and setup sensors.

Return

void.

void init_tipping_bucket_interrupt()
void print_configuration()

Print current configuration.

Return

void.

void save_configuration(bool is_default)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void load_configuration()

Load configuration from EEPROM.

Return

void.

void tipping_bucket_interrupt_handler()

Tipping bucket interrupt handler.

Return

void.

void i2c_request_interrupt_handler()

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

void tipping_bucket_task()

Tipping bucket task.

Return

void.

void exchange_buffers()

Exchange reader and writer pointer to buffer.

Return

void.

void reset_buffers()

Reset buffers to default value.

Return

void.

void command_task()

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void commands()

Performs specific operations based on the received command.

Return

void.

file i2c-th-config.h
#include <sensors_config.h>

Defines

MODULE_MAIN_VERSION

Module main version.

MODULE_MINOR_VERSION

Module minor version.

MODULE_CONFIGURATION_VERSION

Module version of compatibile configuration. If you change it, you have to reconfigure.

MODULE_TYPE

Type of module. It is defined in registers.h.

CONFIGURATION_DEFAULT_IS_ONESHOT

Oneshot mode for default.

CONFIGURATION_DEFAULT_I2C_ADDRESS

Default i2c address.

CONFIGURATION_RESET_PIN

Input pin for reset configuration at startup.

TH_POWER_PIN

Output pin for power on and power off th sensor.

SDCARD_CHIP_SELECT_PIN

Chip select for SDcard SPI.

SPI_SPEED

Clock speed for SPI and SDcard.

USE_POWER_DOWN

Enable or disable power down.

DEBOUNCING_POWER_DOWN_TIME_MS

Debounce power down ms.

USE_TIMER_1

Enable or disable timer1.

WDT_TIMER

Watchdog timer for periodically check microprocessor block states.

Possible value for WDT_TIMER are: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

SENSOR_ERROR_COUNT_MAX
OBSERVATIONS_MINUTES

How much minutes for calculate an observations by processing sampling. Tipically 1-10 minutes.

SENSORS_SAMPLE_TIME_MS

Milliseconds for sampling sensors: 2000 - 8000 [ms] setting it to 3980 ms we gain 20 ms every sample, 300 ms every observation, 4500 every report (15minutes)

SAMPLES_COUNT_MAX
OBSERVATION_SAMPLES_COUNT

Sample count in OBSERVATIONS_MINUTES minutes.

OBSERVATION_SAMPLE_ERROR_MAX

Maximum invalid sample count for generate a valid observations.

RMAP_REPORT_ERROR_MAX
RMAP_REPORT_VALID_MIN
TIMER1_INTERRUPT_TIME_MS

Value in milliseconds for generating timer1 interrupt.

TIMER1_TCNT1_VALUE

Timer1 timer overflow with 1024 prescaler.

TIMER1_VALUE_MAX_MS

Maximum timer1 counter value for timed tasks.

SENSORS_RETRY_COUNT_MAX

Maximum number of retry for sensors reading.

SENSORS_RETRY_DELAY_MS

Waiting for reading between two attempts.

TRANSACTION_TIMEOUT_MS

Timeout for command transaction.

file i2c-th.h
#include "i2c-th-config.h"#include <debug.h>#include <i2c_config.h>#include <avr/sleep.h>#include <avr/power.h>#include <avr/wdt.h>#include <i2c_utility.h>#include <rmap_utility.h>#include <sdcard_utility.h>#include <eeprom_utility.h>#include <Wire.h>#include <TimeLib.h>#include <typedef.h>#include <registers-th.h>#include <SensorDriver.h>#include <debug_config.h>#include <SdFat.h>#include <StreamUtils.h>#include <ArduinoLog.h>

Enums

enum state_t

Main loop finite state machine.

Values:

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator REBOOT

reboot the machine

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enum sensors_reading_state_t

Sensors reading task finite state machine.

Values:

enumerator SENSORS_READING_INIT

init task variables

enumerator SENSORS_READING_SETUP_CHECK

check sensor errors

enumerator SENSORS_READING_POWER_OFF

power off sensor

enumerator SENSORS_READING_POWER_ON

power on sensor

enumerator SENSORS_READING_SETUP

if required try a sensor setup

enumerator SENSORS_READING_PREPARE

prepare sensor

enumerator SENSORS_READING_IS_PREPARED

check if the sensor has been prepared

enumerator SENSORS_READING_GET

read and get values from sensor

enumerator SENSORS_READING_IS_GETTED

check if the sensor has been readed

enumerator SENSORS_READING_READ

intermediate state (future implementation...)

enumerator SENSORS_READING_NEXT

go to next sensor

enumerator SENSORS_READING_END

performs end operations and deactivate task

enumerator SENSORS_READING_WAIT_STATE

non-blocking waiting time

enumerator SENSORS_READING_INIT

init task variables

enumerator SENSORS_SETUP_CHECK

check errors and if required try a sensor setup

enumerator SENSORS_READING_PREPARE

prepare sensor

enumerator SENSORS_READING_IS_PREPARED

check if the sensor has been prepared

enumerator SENSORS_READING_GET

read and get values from sensor

enumerator SENSORS_READING_IS_GETTED

check if the sensor has been readed

enumerator SENSORS_READING_READ

intermediate state (future implementation...)

enumerator SENSORS_READING_NEXT

go to next sensor

enumerator SENSORS_READING_END

performs end operations and deactivate task

enumerator SENSORS_READING_WAIT_STATE

non-blocking waiting time

enumerator SENSORS_READING_INIT
enumerator SENSORS_READING_PREPARE
enumerator SENSORS_READING_IS_PREPARED
enumerator SENSORS_READING_GET
enumerator SENSORS_READING_IS_GETTED
enumerator SENSORS_READING_READ
enumerator SENSORS_READING_NEXT
enumerator SENSORS_READING_END
enumerator SENSORS_READING_WAIT_STATE

Functions

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_system(void)

Init system.

Return

void.

void init_buffers(void)

Init buffers.

Return

void.

void init_tasks(void)

Init tasks variable and state.

Return

void.

void init_pins(void)

Init hardware pins.

Return

void.

void init_wire(void)

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi(void)

Init SPI library.

Return

void.

void init_rtc(void)

Init RTC module.

Return

void.

void init_sensors(void)

Create and setup sensors.

Return

void.

void print_configuration(void)

Print current configuration.

Return

void.

void load_configuration(void)

Load configuration from EEPROM.

Return

void.

void save_configuration(bool)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void commands(void)

Performs specific operations based on the received command.

Return

void.

void reset_samples_buffer(void)

Reset samples buffers to default value.

Return

void.

void reset_observations_buffer(void)

Reset observations buffers to default value.

Return

void.

void exchange_buffers(void)

Exchange reader and writer pointer to buffer.

Return

void.

void samples_processing(bool is_force_processing)

Main routine for processing the samples to calculate an observation.

Return

void.

Parameters
  • is_force_processing: if is true, force the calculation of the observation provided there is a minimum number of samples.

void init_logging()

Init logging system.

Return

void.

void sensors_reading_task(void)

Sensors reading Task. Read data from sensors.

Return

void.

void command_task(void)

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void i2c_request_interrupt_handler(void)

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(void)

Variables

configuration_t configuration
readable_data_t readable_data_1
readable_data_t readable_data_2
readable_data_t *readable_data_read_ptr
readable_data_t *readable_data_write_ptr
readable_data_t *readable_data_temp_ptr
writable_data_t writable_data
writable_data_t *writable_data_ptr
uint8_t readable_data_address
uint8_t readable_data_length
uint8_t i2c_rx_data[I2C_MAX_DATA_LENGTH]
uint8_t lastcommand
uint8_t i2c_error
uint8_t ready_tasks_count
uint32_t awakened_event_occurred_time_ms
bool inside_transaction
uint16_t transaction_time
bool is_start
bool is_stop
bool is_test_read
SensorDriver *sensors[SENSORS_MAX]

SensorDriver buffer for storing sensors parameter.

SensorDriver array structure.

uint8_t sensors_count

Configured sensors number.

number of created sensors drivers.

sample_t temperature_samples

Temperature samples.

sample_t humidity_samples

Humidity samples.

uint16_t timer_counter
state_t state
sensors_reading_state_t sensors_reading_state

Current sensors reading task state.

Sensors reading task state.

bool is_event_sensors_reading

Enable or disable the Sensors reading task.

bool is_event_command_task
file i2c-th.ino
#include "i2c-th.h"

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_buffers()

Init buffers.

Return

void.

void init_tasks()

Init tasks variable and state.

Return

void.

void init_pins()

Init hardware pins.

Return

void.

void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void thPowerOff()
void thPowerOn()
void init_spi()

Init SPI library.

Return

void.

void init_rtc()

Init RTC module.

Return

void.

void init_system()

Init system.

Return

void.

void print_configuration()

Print current configuration.

Return

void.

void save_configuration(bool is_default)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void load_configuration()

Load configuration from EEPROM.

Return

void.

void init_sensors()

Create and setup sensors.

Return

void.

ISR(TIMER1_OVF_vect)
void i2c_request_interrupt_handler()

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

void sensors_reading_task()

Sensors reading Task. Read data from sensors.

Return

void.

template<typename buffer_g, typename length_v, typename value_v>
value_v bufferRead(buffer_g *buffer, length_v length)
template<typename buffer_g, typename length_v, typename value_v>
value_v bufferReadBack(buffer_g *buffer, length_v length)
template<typename buffer_g, typename length_v>
void bufferPtrResetBack(buffer_g *buffer, length_v length)
template<typename buffer_g, typename length_v, typename value_v>
void bufferReset(buffer_g *buffer, length_v length)
template<typename buffer_g, typename length_v>
void incrementBuffer(buffer_g *buffer, length_v length)
template<typename buffer_g, typename length_v, typename value_v>
void addValue(buffer_g *buffer, length_v length, value_v value)
void make_report(bool init = false)

Main routine for processing the samples to calculate an observation.

Return

void.

void samples_processing()

Main routine for processing the samples to calculate an observation.

Return

void.

void exchange_buffers()

Exchange reader and writer pointer to buffer.

Return

void.

void reset_samples_buffer()

Reset samples buffers to default value.

Return

void.

void reset_data(volatile readable_data_t *ptr)
void command_task()

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void copy_buffers()
void commands()

Performs specific operations based on the received command.

Return

void.

file i2c-thr-config.h
#include <sensors_config.h>

Defines

MODULE_MAIN_VERSION

Module main version.

MODULE_MINOR_VERSION

Module minor version.

MODULE_CONFIGURATION_VERSION

Module version of compatibile configuration. If you change it, you have to reconfigure.

CONFIGURATION_DEFAULT_TEMPERATURE_ADDRESS

Default i2c temperature address.

CONFIGURATION_DEFAULT_HUMIDITY_ADDRESS

Default i2c humidity address.

CONFIGURATION_RESET_PIN

Input pin for reset configuration at startup.

I2C_MAX_TIME

Max i2c time in seconds before i2c restart.

USE_POWER_DOWN

Enable or disable power down.

DEBOUNCING_POWER_DOWN_TIME_MS

Debounce power down ms.

USE_TIMER_1

Enable or disable timer1.

WDT_TIMER

Watchdog timer for periodically check microprocessor block states.

Possible value for WDT_TIMER are: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

TIMER1_INTERRUPT_TIME_MS

Value in milliseconds for generating timer1 interrupt: from 100 to TIMER1_OVERFLOW_TIME_MS.

TIMER1_TCNT1_VALUE

Timer1 timer overflow with 1024 prescaler at 8 MHz.

TIMER_COUNTER_VALUE_MAX_MS

Maximum timer1 counter value for timed tasks.

SDCARD_CHIP_SELECT_PIN

Chip select for SDcard SPI.

SPI_SPEED

Clock speed for SPI and SDcard.

SENSOR_ERROR_COUNT_MAX
SENSORS_SAMPLE_TIME_MS

Milliseconds for sampling sensors: 100 - 60000 [ms] must be integer multiple of TIMER1_INTERRUPT_TIME_MS !!!

OBSERVATION_SAMPLES_COUNT_MIN

Sample count minimum in OBSERVATIONS_MINUTES minutes.

OBSERVATION_SAMPLES_COUNT_MAX

Sample count maximum in OBSERVATIONS_MINUTES minutes.

RMAP_REPORT_SAMPLE_VALID
RMAP_REPORT_SAMPLES_COUNT
OBSERVATION_SAMPLE_ERROR_MAX

Maximum invalid sample count for generate a valid observations.

OBSERVATION_SAMPLE_VALID_MIN
RMAP_REPORT_SAMPLE_ERROR_MAX
RMAP_REPORT_SAMPLE_VALID_MIN
RMAP_REPORT_ERROR_MAX
RMAP_REPORT_VALID_MIN
SAMPLES_COUNT
RMAP_REPORT_INTERVAL_S
USE_SENSORS_COUNT

Sensors count.

USE_SENSOR_DRIVER_COUNT
SENSORS_RETRY_COUNT_MAX

Maximum number of retry for sensors reading.

SENSORS_RETRY_DELAY_MS

Waiting for reading between two attempts.

file i2c-thr.h
#include "i2c-thr-config.h"#include <debug.h>#include <i2c_config.h>#include <avr/sleep.h>#include <avr/power.h>#include <avr/wdt.h>#include <i2c_utility.h>#include <rmap_utility.h>#include <sdcard_utility.h>#include <eeprom_utility.h>#include <Wire.h>#include <TimeLib.h>#include <typedef.h>#include <SensorDriver.h>#include <debug_config.h>#include <SdFat.h>#include <StreamUtils.h>#include <ArduinoLog.h>

Enums

enum state_t

Main loop finite state machine.

Values:

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator REBOOT

reboot the machine

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

Functions

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_system(void)

Init system.

Return

void.

void init_buffers(void)

Init buffers.

Return

void.

void init_tasks(void)

Init tasks variable and state.

Return

void.

void init_pins(void)

Init hardware pins.

Return

void.

void init_wire(void)

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi(void)

Init SPI library.

Return

void.

void init_rtc(void)

Init RTC module.

Return

void.

void init_sensors(void)

Create and setup sensors.

Return

void.

void print_configuration(void)

Print current configuration.

Return

void.

void load_configuration(void)

Load configuration from EEPROM.

Return

void.

void save_configuration(bool)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void commands(void)

Performs specific operations based on the received command.

Return

void.

void tests(void)

Performs specific operations based on the received command.

Performs tests operations based on the received command.

Return

void.

void reset_samples_buffer(void)

Reset samples buffers to default value.

Return

void.

void reset_report_buffer(void)
void reset_buffer(void)

Reset sample and observations buffers to default value.

Return

void.

void exchange_buffers(void)

Exchange reader and writer pointer to buffer.

Return

void.

template<typename buffer_g, typename length_v, typename value_v>
value_v bufferRead(buffer_g *buffer, length_v length)
template<typename buffer_g, typename length_v, typename value_v>
value_v bufferReadBack(buffer_g *buffer, length_v length)
template<typename buffer_g, typename value_v>
void bufferWrite(buffer_g *buffer, value_v value)
template<typename buffer_g>
void bufferPtrReset(buffer_g *buffer)
template<typename buffer_g, typename length_v>
void bufferPtrResetBack(buffer_g *buffer, length_v length)
template<typename buffer_g, typename length_v>
void incrementBuffer(buffer_g *buffer, length_v length)
template<typename buffer_g, typename length_v, typename value_v>
void bufferReset(buffer_g *buffer, length_v length)
template<typename buffer_g, typename length_v, typename value_v>
void addValue(buffer_g *buffer, length_v length, value_v value)
void samples_processing()

Main routine for processing the samples to calculate an observation.

Return

void.

void make_report()
void copy_oneshot_data()
void command_task(void)

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void i2c_request_interrupt_handler(void)

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(void)

Variables

configuration_t configuration
readable_data_t readable_data_1
readable_data_t readable_data_2
readable_data_t *readable_data_read_ptr
readable_data_t *readable_data_write_ptr
readable_data_t *readable_data_temp_ptr
writable_data_t writable_data
writable_data_t *writable_data_ptr
uint8_t readable_data_address
uint8_t readable_data_length
uint8_t i2c_rx_data[I2C_MAX_DATA_LENGTH]
uint8_t i2c_error
uint8_t i2c_time
uint8_t ready_tasks_count
uint32_t awakened_event_occurred_time_ms
bool is_start
bool is_stop
bool is_oneshot
bool is_continuous
uint16_t timer_counter_ms
SensorDriver *sensors[SENSORS_MAX]
uint8_t sensors_count
state_t state
bool is_event_command_task
file i2c-thr.ino
#include "i2c-thr.h"

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_buffers()

Init buffers.

Return

void.

void init_tasks()

Init tasks variable and state.

Return

void.

void init_pins()

Init hardware pins.

Return

void.

void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi()

Init SPI library.

Return

void.

void init_rtc()

Init RTC module.

Return

void.

void init_system()

Init system.

Return

void.

void print_configuration()

Print current configuration.

Return

void.

void save_configuration(bool is_default)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void load_configuration()

Load configuration from EEPROM.

Return

void.

void init_sensors()

Create and setup sensors.

Return

void.

ISR(TIMER1_OVF_vect)
void i2c_request_interrupt_handler()

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

copy_oneshot_data()
void samples_processing()

Main routine for processing the samples to calculate an observation.

Return

void.

void exchange_buffers()

Exchange reader and writer pointer to buffer.

Return

void.

void reset_samples_buffer()

Reset samples buffers to default value.

Return

void.

void reset_buffer()

Reset sample and observations buffers to default value.

Return

void.

void reset_report_buffer()
void command_task()

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void commands()

Performs specific operations based on the received command.

Return

void.

void tests()

Performs specific operations based on the received command.

Performs tests operations based on the received command.

Return

void.

file i2c-wind-config.h
#include <sensors_config.h>

Defines

MODULE_MAIN_VERSION

Module main version.

MODULE_MINOR_VERSION

Module minor version.

MODULE_CONFIGURATION_VERSION

Module version of compatibile configuration. If you change it, you have to reconfigure.

MODULE_TYPE

Type of module. It is defined in registers.h.

CONFIGURATION_DEFAULT_IS_ONESHOT

Oneshot mode for default.

CONFIGURATION_DEFAULT_I2C_ADDRESS

Default i2c address.

CONFIGURATION_RESET_PIN

Input pin for reset configuration at startup.

SDCARD_CHIP_SELECT_PIN

Chip select for SDcard SPI.

SPI_SPEED

Clock speed for SPI and SDcard.

I2C_MAX_TIME

Max i2c time in seconds before i2c restart.

USE_POWER_DOWN

Enable or disable power down.

DEBOUNCING_POWER_DOWN_TIME_MS

Debounce power down ms.

USE_TIMER_1

Enable or disable timer1.

WDT_TIMER

Watchdog timer for periodically check microprocessor block states.

Possible value for WDT_TIMER are: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

WMO_REPORT_SAMPLES_TIME

Sample time for generate WMO standard wind (verctorial mean) (minutes).

WMO_REPORT_SAMPLES_COUNT

Sample count for generate WMO standard wind (verctorial mean).

RMAP_REPORT_SAMPLE_ERROR_MAX_PERC

Sample maximum error in percent for one observation.

LONG_GUST_SAMPLES_TIME

Sample time for elaborate long gust (seconds).

LONG_GUST_SAMPLES_COUNT

Sample count for generate long gust.

GWS_ERROR_COUNT_MAX

Maximum error readeng GWS sensor before sensor reset and configuration.

WIND_CLASS_1_MAX
WIND_CLASS_2_MAX
WIND_CLASS_3_MAX
WIND_CLASS_4_MAX
WIND_CLASS_5_MAX
USE_SENSORS_COUNT

Sensors count.

TIMER1_TCNT1_VALUE

Timer1 timer overflow with 1024 prescaler at 16 MHz.

TIMER_COUNTER_VALUE_MAX_MS

Maximum timer1 counter value for timed tasks.

WIND_SETUP_DELAY_MS

Reading delay.

WIND_POWER_ON_DELAY_MS
WIND_POWER_RESPONSE_DELAY_MS

windsonic poll mode delay for response (millisec). \from User Manual: \When in polled mode the system will respond to the data command within 130mS \with the last valid data sample as calculated by the Output rate (P Mode Setting). \ is not TRUE !

WIND_READ_DELAY_MS

Reading delay.

WIND_READ_COUNT

number of read.

TRANSACTION_TIMEOUT_MS

Timeout for command transaction.

file i2c-wind.h
#include "i2c-wind-config.h"#include <debug.h>#include <i2c_config.h>#include <avr/sleep.h>#include <avr/power.h>#include <avr/wdt.h>#include <i2c_utility.h>#include <rmap_utility.h>#include <sdcard_utility.h>#include <eeprom_utility.h>#include <Wire.h>#include <TimeLib.h>#include <typedef.h>#include <registers-wind.h>#include <debug_config.h>#include <SdFat.h>#include <StreamUtils.h>#include <ArduinoLog.h>#include <CircularBuffer.h>

Enums

enum state_t

Main loop finite state machine.

Values:

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator REBOOT

reboot the machine

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enum wind_state_t

WIND setup and reading task finite state machine.

Values:

enumerator WIND_INIT
enumerator WIND_READING
enumerator WIND_ELABORATE
enumerator WIND_END

performs end operations and deactivate task

enumerator WIND_WAIT_STATE

non-blocking waiting time

Functions

void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_system(void)

Init system.

Return

void.

void init_buffers(void)

Init buffers.

Return

void.

void init_tasks(void)

Init tasks variable and state.

Return

void.

void init_pins(void)

Init hardware pins.

Return

void.

void init_wire(void)

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi(void)

Init SPI library.

Return

void.

void init_rtc(void)

Init RTC module.

Return

void.

void init_sensors(void)

Create and setup sensors.

Return

void.

void print_configuration(void)

Print current configuration.

Return

void.

void load_configuration(void)

Load configuration from EEPROM.

Return

void.

void save_configuration(bool)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void commands(void)

Performs specific operations based on the received command.

Return

void.

void tests(void)

Performs specific operations based on the received command.

Performs tests operations based on the received command.

Return

void.

void reset_samples_buffer(void)

Reset samples buffers to default value.

Return

void.

void reset_report_buffer(void)
void exchange_buffers(void)

Exchange reader and writer pointer to buffer.

Return

void.

void make_report(bool init = false)

Main routine for processing the samples to calculate an observation.

Return

void.

void elaborate_circular_buffer(void)

Main routine for processing the samples in circular buffer to calculate an observation.

Return

void.

void getSDFromUV(float, float, float*, float*)
void wind_task(void)

Wind setup and reading Task. Read data from WIND.

Return

void.

void command_task(void)

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void i2c_request_interrupt_handler(void)

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(void)

Variables

configuration_t configuration
readable_data_t readable_data_1
readable_data_t readable_data_2
readable_data_t *readable_data_read_ptr
readable_data_t *readable_data_write_ptr
readable_data_t *readable_data_temp_ptr
writable_data_t writable_data
writable_data_t *writable_data_ptr
uint8_t readable_data_address
uint8_t readable_data_length
uint8_t i2c_rx_data[I2C_MAX_DATA_LENGTH]
uint8_t lastcommand
uint8_t i2c_error
uint8_t i2c_time
uint8_t ready_tasks_count
uint32_t awakened_event_occurred_time_ms
bool inside_transaction
uint16_t transaction_time
uint16_t timer_counter_ms
state_t state
wind_state_t wind_state

Current sensors reading task state.

bool is_event_activate_wind_task

Enable or disable activation of WIND task by timer.

bool is_event_wind_task

Enable or disable the WIND task.

bool is_event_command_task
file i2c-wind.ino
#include "i2c-wind.h"

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_buffers()

Init buffers.

Return

void.

void init_tasks()

Init tasks variable and state.

Return

void.

void init_pins()

Init hardware pins.

Return

void.

void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi()

Init SPI library.

Return

void.

void init_rtc()

Init RTC module.

Return

void.

void init_system()

Init system.

Return

void.

void print_configuration()

Print current configuration.

Return

void.

void save_configuration(bool is_default)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void load_configuration()

Load configuration from EEPROM.

Return

void.

void init_sensors()

Create and setup sensors.

Return

void.

ISR(TIMER1_OVF_vect)
void i2c_request_interrupt_handler()

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

void getSDFromUV(float u, float v, uint16_t *speed, uint16_t *direction)
void print_registers(void)
void make_report(bool init)

Main routine for processing the samples to calculate an observation.

Return

void.

void elaborate_circular_buffer(void)

Main routine for processing the samples in circular buffer to calculate an observation.

Return

void.

void exchange_buffers()

Exchange reader and writer pointer to buffer.

Return

void.

void reset_samples_buffer()

Reset samples buffers to default value.

Return

void.

void reset_data(volatile readable_data_t *ptr)
void command_task()

Command Task. Execute the command received on i2c bus by reading i2c received data buffer.

Execute the command received on i2c bus by reading i2c received data buffer.

Return

void.

void copy_buffers()
file SdFormatter.ino
#include "SdFat.h"#include "sdios.h"

Defines

SDCARD_SS_PIN
SPI_CLOCK
SD_CONFIG
sdError(msg)

Functions

ArduinoOutStream cout(Serial)
void sdErrorHalt()
void clearSerialInput()
void eraseCard()
void formatCard()
void printConfig(SdSpiConfig config)
bool cidDmp()
bool csdDmp()
void errorPrint()
bool mbrDmp()
void dmpVol()
void printCardType()
void printConfig(SdioConfig config)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

const int8_t DISABLE_CS_PIN = -1
const uint8_t SD_CS_PIN = SDCARD_SS_PIN
uint32_t cardSectorCount = 0
uint8_t sectorBuffer[512]
SdCardFactory cardFactory
SdCard *m_card = nullptr
SdFs sd
cid_t m_cid
csd_t m_csd
uint32_t m_eraseSize
uint32_t m_ocr
uint32_t const ERASE_SIZE = 262144L
file sensor_config.ino
#include "Wire.h"#include <Arduino.h>#include "registers-radiation.h"#include "registers-wind.h"#include "registers-th.h"#include "registers-rain.h"#include "registers-power.h"#include <i2c_utility.h>

Defines

WIND_POWER_ON_DELAY_MS
WIND_POWER_PIN
GWS_SERIAL_BAUD
GWS_SERIAL_TIMEOUT_MS
UART_RX_BUFFER_LENGTH
CONFMSG
SAFEMSG

Functions

HardwareSerial Serial1(D0, D1)
void scanI2CBus(byte from_addr, byte to_addr, void (*callback)(byte address, byte result))
void scanFunc(byte addr, byte result)
void windsonicSerialReset()
void windsonicReceiveTerminatedMessage(const char terminator)
void windsonicReceiveMessage(const char terminator)
void windsonicPowerOff()
void windsonicPowerOn()
void windsonicFlush(void)
bool windsonicEnterConfigMode(void)
bool windsonicEnterConfigModeAllBaudrate()
bool windsonicInitSafeMode()
void windsonicConfigure(void)
void windsonicSconfigure(void)
char getCommand()
void displayHelp()
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

byte start_address = 1
byte end_address = 127
uint16_t uart_rx_buffer_length
char uart_rx_buffer[UART_RX_BUFFER_LENGTH]
const char version[] = "2.0"
file sensor_config.ino
#include "Wire.h"#include <Arduino.h>#include "registers-radiation.h"#include "registers-wind.h"#include "registers-th.h"#include "registers-rain.h"#include "registers-power.h"#include <i2c_utility.h>#include <menu.h>#include <menuIO/hd44780_I2CexpOut.h>#include <menuIO/RotaryIn.h>#include <menuIO/IRremoteIn.h>#include <menuIO/keyIn.h>#include <menuIO/chainStream.h>#include <menuIO/serialOut.h>#include <menuIO/serialIn.h>#include <hd44780.h>#include <hd44780ioClass/hd44780_I2Cexp.h>

Defines

WIND_POWER_ON_DELAY_MS
WIND_POWER_PIN
GWS_SERIAL_BAUD
GWS_SERIAL_TIMEOUT_MS
UART_RX_BUFFER_LENGTH
encA
encB
encBtn
IR_PIN
MAX_DEPTH
CONFMSG
SAFEMSG

Functions

HardwareSerial Serial1(D0, D1)
void scanI2CBus(byte from_addr, byte to_addr, void (*callback)(byte address, byte result))
result scan_i2c_bus()
result i2c_solar_radiation_address(eventMask e, prompt &item)
result i2c_solar_radiation_oneshot(eventMask e, prompt &item)
result i2c_solar_radiation_offset(eventMask e, prompt &item)
result i2c_solar_radiation_gain(eventMask e, prompt &item)
result i2c_solar_radiation_sensor_voltage(eventMask e, prompt &item)
result i2c_solar_radiation_sensor_radiation(eventMask e, prompt &item)
result i2c_solar_radiation_save_all(eventMask e, prompt &item)
result i2c_th_address(eventMask e, prompt &item)
result i2c_th_oneshot(eventMask e, prompt &item)
result i2c_th_sensor_type1(eventMask e, prompt &item)
result i2c_th_sensor_address1(eventMask e, prompt &item)
result i2c_th_sensor_type2(eventMask e, prompt &item)
result i2c_th_sensor_address2(eventMask e, prompt &item)
result i2c_th_save_all(eventMask e, prompt &item)
result i2c_rain_address(eventMask e, prompt &item)
result i2c_rain_oneshot(eventMask e, prompt &item)
result i2c_rain_tipping_bucket_time(eventMask e, prompt &item)
result i2c_rain_rain_for_tip(eventMask e, prompt &item)
result i2c_rain_save_all(eventMask e, prompt &item)
result i2c_power_address(eventMask e, prompt &item)
result i2c_power_oneshot(eventMask e, prompt &item)
result i2c_power_voltage_max_panel(eventMask e, prompt &item)
result i2c_power_voltage_max_battery(eventMask e, prompt &item)
result i2c_power_save_all(eventMask e, prompt &item)
result i2c_wind_address(eventMask e, prompt &item)
result i2c_wind_oneshot(eventMask e, prompt &item)
result i2c_wind_save_all(eventMask e, prompt &item)
result windsonic_sconfigurator(eventMask e, prompt &item)
result windsonic_configurator(eventMask e, prompt &item)
TOGGLE (radiationOneshot, subMenuRadiationOneshot,"Oneshot: ", doNothing, noEvent, noStyle, VALUE("True", true, i2c_solar_radiation_oneshot, exitEvent), VALUE("False", false, i2c_solar_radiation_oneshot, exitEvent)) MENU(subMenuRadiationSave
Save OP ("Yes", i2c_solar_radiation_save_all, enterEvent)
Save EXIT ("<Back"))
MENU (subMenuRadiation,"i2c_radiation", doNothing, noEvent, noStyle, FIELD(radiationAddress,"I2C address","", 0, 127, 1, 0, i2c_solar_radiation_address, exitEvent, noStyle), SUBMENU(subMenuRadiationOneshot), FIELD(radiationOffset,"ADC offset","",-127.0, 127.0, 1.0, 0, i2c_solar_radiation_offset, exitEvent, noStyle), altFIELD(decPlaces< 3 >::menuField, radiationGain,"ADC gain","", 0., 2., 0.1, 0.001, i2c_solar_radiation_gain, exitEvent, noStyle), altFIELD(decPlaces< 0 >::menuField, radiationSensorVoltage,"Volt MAX"," mV", 0.0, 10000.0, 100.0, 1.0, i2c_solar_radiation_sensor_voltage, exitEvent, noStyle), altFIELD(decPlaces< 0 >::menuField, radiationSensorRadiation,"Radi MAX"," w/m^2", 0.0, 10000.0, 100.0, 1.0, i2c_solar_radiation_sensor_radiation, exitEvent, noStyle), SUBMENU(subMenuRadiationSave), EXIT("<Back"))
TOGGLE (thOneshot, subMenuThOneshot,"Oneshot: ", doNothing, noEvent, noStyle, VALUE("True", true, i2c_th_oneshot, exitEvent), VALUE("False", false, i2c_th_oneshot, exitEvent)) MENU(subMenuThSave
Save OP ("Yes", i2c_th_save_all, enterEvent)
MENU (subMenuTh,"i2c_th", doNothing, noEvent, noStyle, FIELD(thAddress,"I2C address","", 0, 127, 1, 0, i2c_th_address, exitEvent, noStyle), SUBMENU(subMenuThOneshot), EDIT("sensor1 type", thSensorType1, alpha, i2c_th_sensor_type1, exitEvent, noStyle), FIELD(thSensorAddress1,"sensor1 address","", 0, 127, 1, 0, i2c_th_sensor_address1, exitEvent, noStyle), EDIT("sensor2 type", thSensorType2, alpha, i2c_th_sensor_type2, exitEvent, noStyle), FIELD(thSensorAddress2,"sensor2 address","", 0, 127, 1, 0, i2c_th_sensor_address2, exitEvent, noStyle), SUBMENU(subMenuThSave), EXIT("<Back"))
TOGGLE (rainOneshot, subMenuRainOneshot,"Oneshot: ", doNothing, noEvent, noStyle, VALUE("True", true, i2c_rain_oneshot, exitEvent), VALUE("False", false, i2c_rain_oneshot, exitEvent)) MENU(subMenuRainSave
Save OP ("Yes", i2c_rain_save_all, enterEvent)
MENU (subMenuRain,"i2c_rain", doNothing, noEvent, noStyle, FIELD(rainAddress,"I2C address","", 0, 127, 1, 0, i2c_rain_address, exitEvent, noStyle), SUBMENU(subMenuRainOneshot), FIELD(rainTippingBucketTime,"Tip time","ms", 0, 1000, 10, 1, i2c_rain_tipping_bucket_time, exitEvent, noStyle), FIELD(rainRainForTip,"Tip value","mm/10", 1, 20, 1, 0, i2c_rain_rain_for_tip, exitEvent, noStyle), SUBMENU(subMenuRainSave), EXIT("<Back"))
TOGGLE (powerOneshot, subMenuPowerOneshot,"Oneshot: ", doNothing, noEvent, noStyle, VALUE("True", true, i2c_power_oneshot, exitEvent), VALUE("False", false, i2c_power_oneshot, exitEvent)) MENU(subMenuPowerSave
Save OP ("Yes", i2c_power_save_all, enterEvent)
MENU (subMenuPower,"i2c_power", doNothing, noEvent, noStyle, FIELD(powerAddress,"I2C address","", 0, 127, 1, 0, i2c_power_address, exitEvent, noStyle), SUBMENU(subMenuPowerOneshot), FIELD(powerVoltageMaxPanel,"Panel max","mV", 1, 50000, 100, 1, i2c_power_voltage_max_panel, exitEvent, noStyle), FIELD(powerVoltageMaxBattery,"Battery max","mV", 1, 30000, 100, 1, i2c_power_voltage_max_battery, exitEvent, noStyle), SUBMENU(subMenuPowerSave), EXIT("<Back"))
TOGGLE (windOneshot, subMenuWindOneshot,"Oneshot: ", doNothing, noEvent, noStyle, VALUE("True", true, i2c_wind_oneshot, exitEvent), VALUE("False", false, i2c_wind_oneshot, exitEvent)) MENU(subMenuWindSave
Save OP ("Yes", i2c_wind_save_all, enterEvent)
MENU (subMenuWind,"i2c_wind", doNothing, noEvent, noStyle, FIELD(windAddress,"I2C address","", 0, 127, 1, 0, i2c_wind_address, exitEvent, noStyle), SUBMENU(subMenuWindOneshot), SUBMENU(subMenuWindSave), EXIT("<Back"))
MENU (mainMenu,"Configuration", doNothing, noEvent, noStyle, SUBMENU(subMenuRadiation), SUBMENU(subMenuTh), SUBMENU(subMenuRain), SUBMENU(subMenuPower), SUBMENU(subMenuWind), OP("configure windsonic", windsonic_configurator, enterEvent), OP("sconfigure windsonic", windsonic_sconfigurator, enterEvent), OP("Scan i2c bus", scan_i2c_bus, enterEvent), EXIT("<Exit go to serial port"))
encoderInStream<encA, encB> encStream(encoder)
irInStream<IR_PIN> irStream(ir)
keyIn<1> encButton(encBtn_map)
serialIn serial(Serial)
MENU_INPUTS (in,&irStream,&encStream,&encButton,&serial)
panelsList pList (panels, nodes, 1)
serialOut outSerial(Serial, serialTops)
liquidCrystalOut outLcd(lcd, lcdTops, pList)
outputsList out (outputs, sizeof(outputs)/sizeof(menuOut *))
NAVROOT(nav, mainMenu, MAX_DEPTH, in, out)
result display_status(menuOut &o, idleEvent e)
result display_nostatus(menuOut &o, idleEvent e)
result idle(menuOut &o, idleEvent e)
result look_at_serial_message(menuOut &o, idleEvent e)
void encoderprocess()
void scanFunc(byte addr, byte result)
void windsonicSerialReset()
void windsonicReceiveTerminatedMessage(const char terminator)
void windsonicReceiveMessage(const char terminator)
void windsonicPowerOff()
void windsonicPowerOn()
void windsonicFlush(void)
bool windsonicEnterConfigMode(void)
bool windsonicEnterConfigModeAllBaudrate()
bool windsonicInitSafeMode()
void windsonicConfigure(void)
void windsonicSconfigure(void)
char getCommand()
void displayHelp()
bool do_i2c_solar_radiation_address(void)
bool do_i2c_solar_radiation_oneshot(void)
bool do_i2c_solar_radiation_offset(void)
bool do_i2c_solar_radiation_gain(void)
bool do_i2c_solar_radiation_sensor_voltage(void)
bool do_i2c_solar_radiation_sensor_radiation(void)
bool do_i2c_solar_radiation_save(void)
bool do_i2c_th_address(void)
bool do_i2c_th_oneshot(void)
bool do_i2c_th_sensor_type1(void)
bool do_i2c_th_sensor_address1(void)
bool do_i2c_th_sensor_type2(void)
bool do_i2c_th_sensor_address2(void)
bool do_i2c_th_save(void)
bool do_i2c_rain_address(void)
bool do_i2c_rain_oneshot(void)
bool do_i2c_rain_rain_for_tip(void)
bool do_i2c_rain_tipping_bucket_time(void)
bool do_i2c_rain_save(void)
bool do_i2c_power_address(void)
bool do_i2c_power_oneshot(void)
bool do_i2c_power_voltage_max_panel(void)
bool do_i2c_power_voltage_max_battery(void)
bool do_i2c_power_save(void)
bool do_i2c_wind_address(void)
bool do_i2c_wind_oneshot(void)
void do_windsonic_sconfigurator(void)
void do_windsonic_configurator(void)
bool do_i2c_wind_save(void)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void loop_menu()
void loop_serial()

Variables

uint16_t uart_rx_buffer_length
char uart_rx_buffer[UART_RX_BUFFER_LENGTH]
const char version[] = "4.0"
hd44780_I2Cexp lcd
bool last_status
bool true_idle_status = false
uint8_t radiationAddress = I2C_SOLAR_RADIATION_DEFAULT_ADDRESS
bool radiationOneshot = false
float radiationOffset = 0.0
float radiationGain = 1.0
float radiationSensorVoltage = 5000.0
float radiationSensorRadiation = 2000.0
uint8_t thAddress = I2C_TH_DEFAULT_ADDRESS
bool thOneshot = false
char thSensorType1[] = "HYT"
uint8_t thSensorAddress1 = 40
char thSensorType2[] = " "
uint8_t thSensorAddress2 = 0
uint8_t rainAddress = I2C_RAIN_DEFAULT_ADDRESS
bool rainOneshot = true
uint16_t rainTippingBucketTime = 50
uint8_t rainRainForTip = 1
uint8_t powerAddress = I2C_POWER_DEFAULT_ADDRESS
bool powerOneshot = false
uint16_t powerVoltageMaxPanel = 30000
uint16_t powerVoltageMaxBattery = 15000
uint8_t windAddress = I2C_WIND_DEFAULT_ADDRESS
bool windOneshot = false
uint8_t windType = 1
Save configuration
Save doNothing
Save noEvent
Save noStyle
const char *const alpha[] MEMMODE = {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"}
encoderIn<encA, encB> encoder
irIn<IR_PIN> ir
keyMap encBtn_map[] = {{-encBtn, defaultNavCodes[enterCmd].ch}}
menuIn *inputsList[] = {&encButton}
navNode *nodes[sizeof(panels) / sizeof(panel)]
idx_t serialTops[MAX_DEPTH]
idx_t lcdTops[MAX_DEPTH]
file sensor_config.ino
#include "Wire.h"#include <Arduino.h>#include <ArduinoLog.h>#include "registers-master.h"#include "registers-radiation.h"#include "registers-wind.h"#include "registers-th.h"#include "registers-rain.h"#include "registers-power.h"#include <i2c_utility.h>#include <stima-config.h>#include <sensors_config.h>#include <ethernet_config.h>#include "sensor_config.h"#include "lcd_config.h"#include <EEPROM.h>#include <menu.h>#include <menuIO/hd44780_I2CexpOut.h>#include <menuIO/RotaryIn.h>#include <menuIO/IRremoteIn.h>#include <menuIO/keyIn.h>#include <menuIO/chainStream.h>#include <menuIO/serialOut.h>#include <menuIO/serialIn.h>#include <SPI.h>#include <SdFat.h>#include "sdios.h"#include <plugin/SdFatMenu.h>#include <hd44780.h>#include <hd44780ioClass/hd44780_I2Cexp.h>

Defines

encA
encB
encBtn
IR_PIN
WIND_POWER_PIN
LOG_LEVEL
WIND_POWER_ON_DELAY_MS
GWS_SERIAL_BAUD
GWS_SERIAL_TIMEOUT_MS
UART_RX_BUFFER_LENGTH
SDCARD_SS
SD_CONFIG
MAX_DEPTH
CONFMSG
SAFEMSG
CHUNK

Functions

HardwareSerial Serial1(D0, D1)
result filePick(eventMask event, navNode &nav, prompt &item)
void scanI2CBus(byte from_addr, byte to_addr, void (*callback)(byte address, byte result))
result scan_i2c_bus()
result i2c_master_save_i2c_all(eventMask e, prompt &item)
result i2c_master_save_eeprom_all(eventMask e, prompt &item)
result i2c_solar_radiation_address(eventMask e, prompt &item)
result i2c_solar_radiation_oneshot(eventMask e, prompt &item)
result i2c_solar_radiation_offset(eventMask e, prompt &item)
result i2c_solar_radiation_gain(eventMask e, prompt &item)
result i2c_solar_radiation_sensor_voltage(eventMask e, prompt &item)
result i2c_solar_radiation_sensor_radiation(eventMask e, prompt &item)
result i2c_solar_radiation_save_all(eventMask e, prompt &item)
result i2c_th_address(eventMask e, prompt &item)
result i2c_th_oneshot(eventMask e, prompt &item)
result i2c_th_sensor_type1(eventMask e, prompt &item)
result i2c_th_sensor_address1(eventMask e, prompt &item)
result i2c_th_sensor_type2(eventMask e, prompt &item)
result i2c_th_sensor_address2(eventMask e, prompt &item)
result i2c_th_save_all(eventMask e, prompt &item)
result i2c_rain_address(eventMask e, prompt &item)
result i2c_rain_oneshot(eventMask e, prompt &item)
result i2c_rain_tipping_bucket_time(eventMask e, prompt &item)
result i2c_rain_rain_for_tip(eventMask e, prompt &item)
result i2c_rain_save_all(eventMask e, prompt &item)
result i2c_power_address(eventMask e, prompt &item)
result i2c_power_oneshot(eventMask e, prompt &item)
result i2c_power_voltage_max_panel(eventMask e, prompt &item)
result i2c_power_voltage_max_battery(eventMask e, prompt &item)
result i2c_power_save_all(eventMask e, prompt &item)
result i2c_wind_address(eventMask e, prompt &item)
result i2c_wind_oneshot(eventMask e, prompt &item)
result i2c_wind_save_all(eventMask e, prompt &item)
result sdcardFormat(eventMask e, prompt &item)
result windsonic_sconfigurator(eventMask e, prompt &item)
result windsonic_configurator(eventMask e, prompt &item)
SDMenuT< CachedFSO< SdFat, 32 > > filePickMenu (sd,"Select conf file","/", filePick, enterEvent)
MENU (subMenuMasterEepromSave,"EE save conf", doNothing, noEvent, noStyle, OP("Yes write on EEPROM", i2c_master_save_eeprom_all, enterEvent), EXIT("<Back"))
MENU (subMenuMasterI2cSave,"I2C save conf", doNothing, noEvent, noStyle, OP("Yes write on I2C", i2c_master_save_i2c_all, enterEvent), EXIT("<Back"))
MENU (subMenuMaster,"Master", doNothing, noEvent, noStyle, SUBMENU(filePickMenu), SUBMENU(subMenuMasterEepromSave), SUBMENU(subMenuMasterI2cSave), EXIT("<Back"))
TOGGLE (radiationOneshot, subMenuRadiationOneshot,"Oneshot: ", doNothing, noEvent, noStyle, VALUE("True", true, i2c_solar_radiation_oneshot, exitEvent), VALUE("False", false, i2c_solar_radiation_oneshot, exitEvent)) MENU(subMenuRadiationSave
Save OP ("Yes", i2c_solar_radiation_save_all, enterEvent)
Save EXIT ("<Back"))
MENU (subMenuRadiation,"i2c_radiation", doNothing, noEvent, noStyle, FIELD(radiationAddress,"I2C address","", 0, 127, 1, 0, i2c_solar_radiation_address, exitEvent, noStyle), SUBMENU(subMenuRadiationOneshot), FIELD(radiationOffset,"ADC offset","",-127.0, 127.0, 1.0, 0, i2c_solar_radiation_offset, exitEvent, noStyle), altFIELD(decPlaces< 3 >::menuField, radiationGain,"ADC gain","", 0., 2., 0.1, 0.001, i2c_solar_radiation_gain, exitEvent, noStyle), altFIELD(decPlaces< 0 >::menuField, radiationSensorVoltage,"Volt MAX"," mV", 0.0, 10000.0, 100.0, 1.0, i2c_solar_radiation_sensor_voltage, exitEvent, noStyle), altFIELD(decPlaces< 0 >::menuField, radiationSensorRadiation,"Radi MAX"," w/m^2", 0.0, 10000.0, 100.0, 1.0, i2c_solar_radiation_sensor_radiation, exitEvent, noStyle), SUBMENU(subMenuRadiationSave), EXIT("<Back"))
TOGGLE (thOneshot, subMenuThOneshot,"Oneshot: ", doNothing, noEvent, noStyle, VALUE("True", true, i2c_th_oneshot, exitEvent), VALUE("False", false, i2c_th_oneshot, exitEvent)) MENU(subMenuThSave
Save OP ("Yes", i2c_th_save_all, enterEvent)
MENU (subMenuTh,"i2c_th", doNothing, noEvent, noStyle, FIELD(thAddress,"I2C address","", 0, 127, 1, 0, i2c_th_address, exitEvent, noStyle), SUBMENU(subMenuThOneshot), EDIT("sensor1 type", thSensorType1, alpha, i2c_th_sensor_type1, exitEvent, noStyle), FIELD(thSensorAddress1,"sensor1 address","", 0, 127, 1, 0, i2c_th_sensor_address1, exitEvent, noStyle), EDIT("sensor2 type", thSensorType2, alpha, i2c_th_sensor_type2, exitEvent, noStyle), FIELD(thSensorAddress2,"sensor2 address","", 0, 127, 1, 0, i2c_th_sensor_address2, exitEvent, noStyle), SUBMENU(subMenuThSave), EXIT("<Back"))
TOGGLE (rainOneshot, subMenuRainOneshot,"Oneshot: ", doNothing, noEvent, noStyle, VALUE("True", true, i2c_rain_oneshot, exitEvent), VALUE("False", false, i2c_rain_oneshot, exitEvent)) MENU(subMenuRainSave
Save OP ("Yes", i2c_rain_save_all, enterEvent)
MENU (subMenuRain,"i2c_rain", doNothing, noEvent, noStyle, FIELD(rainAddress,"I2C address","", 0, 127, 1, 0, i2c_rain_address, exitEvent, noStyle), SUBMENU(subMenuRainOneshot), FIELD(rainTippingBucketTime,"Tip time","ms", 0, 1000, 10, 1, i2c_rain_tipping_bucket_time, exitEvent, noStyle), FIELD(rainRainForTip,"Tip value","mm/10", 1, 20, 1, 0, i2c_rain_rain_for_tip, exitEvent, noStyle), SUBMENU(subMenuRainSave), EXIT("<Back"))
TOGGLE (powerOneshot, subMenuPowerOneshot,"Oneshot: ", doNothing, noEvent, noStyle, VALUE("True", true, i2c_power_oneshot, exitEvent), VALUE("False", false, i2c_power_oneshot, exitEvent)) MENU(subMenuPowerSave
Save OP ("Yes", i2c_power_save_all, enterEvent)
MENU (subMenuPower,"i2c_power", doNothing, noEvent, noStyle, FIELD(powerAddress,"I2C address","", 0, 127, 1, 0, i2c_power_address, exitEvent, noStyle), SUBMENU(subMenuPowerOneshot), FIELD(powerVoltageMaxPanel,"Panel max","mV", 1, 50000, 100, 1, i2c_power_voltage_max_panel, exitEvent, noStyle), FIELD(powerVoltageMaxBattery,"Battery max","mV", 1, 30000, 100, 1, i2c_power_voltage_max_battery, exitEvent, noStyle), SUBMENU(subMenuPowerSave), EXIT("<Back"))
TOGGLE (windOneshot, subMenuWindOneshot,"Oneshot: ", doNothing, noEvent, noStyle, VALUE("True", true, i2c_wind_oneshot, exitEvent), VALUE("False", false, i2c_wind_oneshot, exitEvent)) MENU(subMenuWindSave
Save OP ("Yes", i2c_wind_save_all, enterEvent)
MENU (subMenuWind,"i2c_wind", doNothing, noEvent, noStyle, FIELD(windAddress,"I2C address","", 0, 127, 1, 0, i2c_wind_address, exitEvent, noStyle), SUBMENU(subMenuWindOneshot), SUBMENU(subMenuWindSave), EXIT("<Back"))
MENU (subMenuSdformat,"SD format", doNothing, noEvent, noStyle, OP("Yes erase all data", sdcardFormat, enterEvent), EXIT("<Back"))
MENU (mainMenu,"Configuration", doNothing, noEvent, noStyle, SUBMENU(subMenuMaster), SUBMENU(subMenuRadiation), SUBMENU(subMenuTh), SUBMENU(subMenuRain), SUBMENU(subMenuPower), SUBMENU(subMenuWind), SUBMENU(subMenuSdformat), OP("configure windsonic", windsonic_configurator, enterEvent), OP("sconfigure windsonic", windsonic_sconfigurator, enterEvent), OP("Scan i2c bus", scan_i2c_bus, enterEvent), EXIT("<Exit go to serial port"))
encoderInStream<encA, encB> encStream(encoder)
irInStream<IR_PIN> irStream(ir)
keyIn<1> encButton(encBtn_map)
serialIn serial(Serial)
MENU_INPUTS (in,&irStream,&encStream,&encButton,&serial)
panelsList pList (panels, nodes, 1)
serialOut outSerial(Serial, serialTops)
liquidCrystalOut outLcd(lcd, lcdTops, pList)
outputsList out (outputs, sizeof(outputs)/sizeof(menuOut *))
NAVROOT(nav, mainMenu, MAX_DEPTH, in, out)
result display_status(menuOut &o, idleEvent e)
result display_nostatus(menuOut &o, idleEvent e)
result idle(menuOut &o, idleEvent e)
result look_at_serial_message(menuOut &o, idleEvent e)
void encoderprocess()
void scanFunc(byte addr, byte result)
void windsonicSerialReset()
void windsonicReceiveTerminatedMessage(const char terminator)
void windsonicReceiveMessage(const char terminator)
void windsonicPowerOff()
void windsonicPowerOn()
void windsonicFlush(void)
bool windsonicEnterConfigMode(void)
bool windsonicEnterConfigModeAllBaudrate()
bool windsonicInitSafeMode()
void windsonicConfigure(void)
void windsonicSconfigure(void)
bool cidDmp()
bool csdDmp()
void errorPrint()
bool mbrDmp()
void dmpVol()
void printCardType()
char getCommand()
void displayHelp()
void print_configuration()

Print current configuration.

Return

void.

bool do_i2c_master_config(uint16_t index, uint8_t *conf, uint8_t conflength)
bool do_i2c_master_save(void)
bool do_i2c_solar_radiation_address(void)
bool do_i2c_solar_radiation_oneshot(void)
bool do_i2c_solar_radiation_offset(void)
bool do_i2c_solar_radiation_gain(void)
bool do_i2c_solar_radiation_sensor_voltage(void)
bool do_i2c_solar_radiation_sensor_radiation(void)
bool do_i2c_solar_radiation_save(void)
bool do_i2c_th_address(void)
bool do_i2c_th_oneshot(void)
bool do_i2c_th_sensor_type1(void)
bool do_i2c_th_sensor_address1(void)
bool do_i2c_th_sensor_type2(void)
bool do_i2c_th_sensor_address2(void)
bool do_i2c_th_save(void)
bool do_i2c_rain_address(void)
bool do_i2c_rain_oneshot(void)
bool do_i2c_rain_rain_for_tip(void)
bool do_i2c_rain_tipping_bucket_time(void)
bool do_i2c_rain_save(void)
bool do_i2c_power_address(void)
bool do_i2c_power_oneshot(void)
bool do_i2c_power_voltage_max_panel(void)
bool do_i2c_power_voltage_max_battery(void)
bool do_i2c_power_save(void)
bool do_i2c_wind_address(void)
bool do_i2c_wind_oneshot(void)
void do_windsonic_sconfigurator(void)
void do_windsonic_configurator(void)
bool do_i2c_wind_save(void)
void logSuffix(Print *_logOutput)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void loop_menu()
void loop_serial()

Variables

uint16_t uart_rx_buffer_length
char uart_rx_buffer[UART_RX_BUFFER_LENGTH]
const char version[] = "4.0"
SdFs sd
SdCardFactory cardFactory
SdCard *m_card = nullptr
cid_t m_cid
csd_t m_csd
uint32_t m_eraseSize
uint32_t m_ocr
hd44780_I2Cexp lcd
bool last_status
bool true_idle_status = false
uint8_t radiationAddress = I2C_SOLAR_RADIATION_DEFAULT_ADDRESS
bool radiationOneshot = false
float radiationOffset = 0.0
float radiationGain = 1.0
float radiationSensorVoltage = 5000.0
float radiationSensorRadiation = 2000.0
uint8_t thAddress = I2C_TH_DEFAULT_ADDRESS
bool thOneshot = false
char thSensorType1[] = "HYT"
uint8_t thSensorAddress1 = 40
char thSensorType2[] = " "
uint8_t thSensorAddress2 = 0
uint8_t rainAddress = I2C_RAIN_DEFAULT_ADDRESS
bool rainOneshot = true
uint16_t rainTippingBucketTime = 50
uint8_t rainRainForTip = 1
uint8_t powerAddress = I2C_POWER_DEFAULT_ADDRESS
bool powerOneshot = false
uint16_t powerVoltageMaxPanel = 30000
uint16_t powerVoltageMaxBattery = 15000
uint8_t windAddress = I2C_WIND_DEFAULT_ADDRESS
bool windOneshot = false
uint8_t windType = 1
char filename[100]
char path[100]
Save configuration
Save doNothing
Save noEvent
Save noStyle
const char *const alpha[] MEMMODE = {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"}
encoderIn<encA, encB> encoder
irIn<IR_PIN> ir
keyMap encBtn_map[] = {{-encBtn, defaultNavCodes[enterCmd].ch}}
menuIn *inputsList[] = {&encButton}
navNode *nodes[sizeof(panels) / sizeof(panel)]
idx_t serialTops[MAX_DEPTH]
idx_t lcdTops[MAX_DEPTH]
file constantdata_config.h

Defines

CONSTANTDATA_BTABLE_LENGTH

Maximum lenght of btable code plus terminator that describe one constant data.

CONSTANTDATA_VALUE_LENGTH

Maximum lenght of value plus terminator for one constant data.

file constantdata_config.h

Defines

CONSTANTDATA_BTABLE_LENGTH

Maximum lenght of btable code plus terminator that describe one constant data.

CONSTANTDATA_VALUE_LENGTH

Maximum lenght of value plus terminator for one constant data.

file ethernet_config.h

Defines

ETHERNET_DEFAULT_DHCP_ENABLE

Default option for enable or disable DHCP protocol with ethernet.

ETHERNET_DEFAULT_MAC

Default mac address for ethernet device.

ETHERNET_DEFAULT_IP

Default ip address for ethernet device.

ETHERNET_DEFAULT_NETMASK

Default netmask for ethernet device.

ETHERNET_DEFAULT_GATEWAY

Default gateway for ethernet device.

ETHERNET_DEFAULT_PRIMARY_DNS

Default primary dns for ethernet device.

ETHERNET_DEFAULT_LOCAL_UDP_PORT

Default local udp port for ethernet device.

ETHERNET_ATTEMPT_MS

Set next ethernet library attempt delay in milliseconds after a failure.

ETHERNET_RETRY_TIME_MS

Set next ethernet task attempt delay in milliseconds after a failure.

ETHERNET_RETRY_COUNT

Maximum number of retry for ethernet task.

ETHERNET_MQTT_TIMEOUT_MS

MQTT timeout in milliseconds for ethernet device.

ETHERNET_MAC_LENGTH

Length in bytes for mac address.

ETHERNET_IP_LENGTH

Length in bytes for ip address.

file ethernet_config.h

Defines

ETHERNET_DEFAULT_DHCP_ENABLE

Default option for enable or disable DHCP protocol with ethernet.

ETHERNET_DEFAULT_MAC

Default mac address for ethernet device.

ETHERNET_DEFAULT_IP

Default ip address for ethernet device.

ETHERNET_DEFAULT_NETMASK

Default netmask for ethernet device.

ETHERNET_DEFAULT_GATEWAY

Default gateway for ethernet device.

ETHERNET_DEFAULT_PRIMARY_DNS

Default primary dns for ethernet device.

ETHERNET_DEFAULT_LOCAL_UDP_PORT

Default local udp port for ethernet device.

ETHERNET_ATTEMPT_MS

Set next ethernet library attempt delay in milliseconds after a failure.

ETHERNET_RETRY_TIME_MS

Set next ethernet task attempt delay in milliseconds after a failure.

ETHERNET_RETRY_COUNT

Maximum number of retry for ethernet task.

ETHERNET_MQTT_TIMEOUT_MS

MQTT timeout in milliseconds for ethernet device.

ETHERNET_MAC_LENGTH

Length in bytes for mac address.

ETHERNET_IP_LENGTH

Length in bytes for ip address.

file ethernet_config.h

Defines

ETHERNET_DEFAULT_DHCP_ENABLE

Default option for enable or disable DHCP protocol with ethernet.

ETHERNET_DEFAULT_MAC

Default mac address for ethernet device.

ETHERNET_DEFAULT_IP

Default ip address for ethernet device.

ETHERNET_DEFAULT_NETMASK

Default netmask for ethernet device.

ETHERNET_DEFAULT_GATEWAY

Default gateway for ethernet device.

ETHERNET_DEFAULT_PRIMARY_DNS

Default primary dns for ethernet device.

ETHERNET_DEFAULT_LOCAL_UDP_PORT

Default local udp port for ethernet device.

ETHERNET_ATTEMPT_MS

Set next ethernet library attempt delay in milliseconds after a failure.

ETHERNET_RETRY_TIME_MS

Set next ethernet task attempt delay in milliseconds after a failure.

ETHERNET_RETRY_COUNT

Maximum number of retry for ethernet task.

ETHERNET_MQTT_TIMEOUT_MS

MQTT timeout in milliseconds for ethernet device.

ETHERNET_MAC_LENGTH

Length in bytes for mac address.

ETHERNET_IP_LENGTH

Length in bytes for ip address.

file gsm_config.h

Defines

GSM_APN_TIM

APN for TIM.

GSM_APN_WIND

APN for WIND.

GSM_APN_VODAFONE

APN for VODAFONE.

GSM_DEFAULT_APN

Default GSM APN.

GSM_DEFAULT_USERNAME

Default GSM username.

GSM_DEFAULT_PASSWORD

Default GSM password.

GSM_APN_LENGTH

Length in bytes for apn.

GSM_USERNAME_LENGTH

Length in bytes for username.

GSM_PASSWORD_LENGTH

Length in bytes for password.

USE_SIM_800C

Enable if you want to use SIM800C.

USE_SIM_800L

Enable if you want to use SIM800L.

file gsm_config.h

Defines

GSM_APN_TIM

APN for TIM.

GSM_APN_WIND

APN for WIND.

GSM_APN_VODAFONE

APN for VODAFONE.

GSM_DEFAULT_APN

Default GSM APN.

GSM_DEFAULT_USERNAME

Default GSM username.

GSM_DEFAULT_PASSWORD

Default GSM password.

GSM_APN_LENGTH

Length in bytes for apn.

GSM_USERNAME_LENGTH

Length in bytes for username.

GSM_PASSWORD_LENGTH

Length in bytes for password.

USE_SIM_800C

Enable if you want to use SIM800C.

USE_SIM_800L

Enable if you want to use SIM800L.

file gsm_config.h

Defines

GSM_APN_TIM

APN for TIM.

GSM_APN_WIND

APN for WIND.

GSM_APN_VODAFONE

APN for VODAFONE.

GSM_DEFAULT_APN

Default GSM APN.

GSM_DEFAULT_USERNAME

Default GSM username.

GSM_DEFAULT_PASSWORD

Default GSM password.

GSM_APN_LENGTH

Length in bytes for apn.

GSM_USERNAME_LENGTH

Length in bytes for username.

GSM_PASSWORD_LENGTH

Length in bytes for password.

USE_SIM_800C

Enable if you want to use SIM800C.

USE_SIM_800L

Enable if you want to use SIM800L.

file lcd_config.h

Defines

LCD_I2C_ADDRESS

LCD i2c address.

LCD_I2C_SECONDARY_ADDRESS

Try this I2C address for LCD if LCD_I2C_ADDRESS fail.

LCD_COLUMNS

Default LCD columns number.

LCD_ROWS

Default LCD rows number.

file lcd_config.h

Defines

LCD_I2C_ADDRESS

LCD i2c address.

LCD_I2C_SECONDARY_ADDRESS

Try this I2C address for LCD if LCD_I2C_ADDRESS fail.

LCD_COLUMNS

Default LCD columns number.

LCD_ROWS

Default LCD rows number.

file lcd_config.h

Defines

LCD_I2C_ADDRESS

Default LCD i2c address.

LCD_COLUMNS

Default LCD columns number.

LCD_ROWS

Default LCD rows number.

file ntp_config.h

Defines

NTP_SERVER_LENGTH

Length in bytes for ntp server data buffer.

NTP_DEFAULT_SERVER

Default NTP server.

file ntp_config.h

Defines

NTP_SERVER_LENGTH

Length in bytes for ntp server data buffer.

NTP_DEFAULT_SERVER

Default NTP server.

file ntp_config.h

Defines

NTP_SERVER_LENGTH

Length in bytes for ntp server data buffer.

NTP_DEFAULT_SERVER

Default NTP server.

file stima-config.h
#include <sensors_config.h>#include <constantdata_config.h>#include <stima_module.h>

Defines

MODULE_MAIN_VERSION

Module main version.

MODULE_MINOR_VERSION

Module minor version.

MODULE_CONFIGURATION_VERSION

Module version of compatibile configuration. If you change it, you have to reconfigure.

MODULE_TYPE

Type of module. It is defined in registers.h.

USE_MQTT

MQTT support.

USE_LCD

LCD support.

USE_SDCARD

SD-Card support.

USE_RTC

RTC support.

USE_TIMER_1

Timer 1 support instead of RTC.

USE_RPC_METHOD_CONFIGURE

RPC method for station configuration.

USE_RPC_METHOD_PREPARE

RPC method for prepare sensors.

USE_RPC_METHOD_PREPANDGET

RPC method for prepare and get data from sensors.

USE_RPC_METHOD_GETJSON

RPC method for get sensor's data.

USE_RPC_METHOD_REBOOT

RPC method for reboot station.

USE_RPC_METHOD_RECOVERY

RPC method for recovery data written on SD card from station.

CONFIGURATION_DEFAULT_TH_ADDRESS

Default i2c i2c-th address.

CONFIGURATION_DEFAULT_RAIN_ADDRESS

Default i2c i2c-rain address.

CONFIGURATION_RESET_PIN

Input pin for reset configuration at startup.

CONFIGURATION_DEFAULT_NTP_SERVER

Default ntp server.

CONFIGURATION_DEFAULT_ETHERNET_DHCP_ENABLE

Default DHCP status.

CONFIGURATION_DEFAULT_ETHERNET_MAC

Default mac address.

CONFIGURATION_DEFAULT_ETHERNET_IP

Default ip address.

CONFIGURATION_DEFAULT_ETHERNET_NETMASK

Default netmask address.

CONFIGURATION_DEFAULT_ETHERNET_GATEWAY

Default gateway address.

CONFIGURATION_DEFAULT_ETHERNET_PRIMARY_DNS

Default primary dns address.

SENSOR_ERROR_COUNT_MAX
USE_POWER_DOWN

Enable or disable power down.

DEBOUNCING_POWER_DOWN_TIME_MS

Debounce power down ms.

W5500_CHIP_SELECT_PIN

Chip select pin for Wiznet W5500 ethernet module.

WDT_TIMER

Watchdog timer for periodically check microprocessor block states.

Possible value for WDT_TIMER are: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

RTC_FREQUENCY

Real time clock frequency for generating interrupt for awaken the microprocessor and execute timed tasks.

RTC_INTERRUPT_PIN

Interrupt pin for rtc.

TIMER1_INTERRUPT_TIME_MS

Value in milliseconds for generating timer1 interrupt.

TIMER1_TCNT1_VALUE

Timer1 timer overflow with 1024 prescaler.

USE_CONSTANTDATA_COUNT

Constantdata count.

SENSORS_RETRY_COUNT_MAX

Maximum number of retry for sensors reading.

SENSORS_RETRY_DELAY_MS

Waiting for reading between two attempts.

SENSORS_TESTING_DELAY_S
DATA_PROCESSING_RETRY_COUNT_MAX

Maximum number of retry for processing acquired data.

DATA_PROCESSING_RETRY_DELAY_MS

Wait time between two attempts.

DATA_SAVING_RETRY_COUNT_MAX

Maximum number of retry for saving data on SD-Card.

DATA_SAVING_DELAY_MS

Wait time between two attempts.

MQTT_RETRY_COUNT_MAX

Maximum number of retry for doing mqtt operations.

MQTT_DELAY_MS

Wait time between two attempts.

IP_STACK_TIMEOUT_MS

IPStack timeout.

SUPERVISOR_CONNECTION_RETRY_COUNT_MAX

Maximum number of retry for doing supervisor operations.

SUPERVISOR_CONNECTION_TIMEOUT_MS

Timeout for connecting.

NTP_RETRY_COUNT_MAX

Maximum number of retry for doing ntp operations.

NTP_RETRY_DELAY_MS

Wait time between two NTP attempts.

NTP_TIME_FOR_RESYNC_S

Maximum seconds for resync time over ntp.

NTP_MAX_DIFF_VALID_TIME_S
LCD_TIME_FOR_REINITIALIZE_S

Maximum seconds for reinitialize LCD.

DISPLAY_SET_MAX

Max number of page to show on display when testing sensors.

ETHERNET_RETRY_COUNT_MAX

Maximum number of retry for doing ethernet operations.

ETHERNET_RETRY_DELAY_MS

Wait time between two attempts.

DATE_TIME_STRING_LENGTH

Length of datetime string %04u-%02u-%02uT%02u:%02u:%02u.

file stima-config.h
#include <sensors_config.h>#include <constantdata_config.h>

Defines

MODULE_MAIN_VERSION

Module main version.

MODULE_MINOR_VERSION

Module minor version.

MODULE_CONFIGURATION_VERSION

Module version of compatibile configuration. If you change it, you have to reconfigure.

MODULE_TYPE

Type of module. It is defined in registers.h.

USE_MQTT

MQTT support.

USE_LCD

LCD support.

USE_SDCARD

SD-Card support.

USE_RTC

RTC support.

USE_TIMER_1

Timer 1 support instead of RTC.

USE_RPC_METHOD_CONFIGURE

RPC method for station configuration.

USE_RPC_METHOD_PREPARE

RPC method for prepare sensors.

USE_RPC_METHOD_PREPANDGET

RPC method for prepare and get data from sensors.

USE_RPC_METHOD_GETJSON

RPC method for get sensor's data.

USE_RPC_METHOD_REBOOT

RPC method for reboot station.

USE_RPC_METHOD_RECOVERY

RPC method for recovery data written on SD card from station.

CONFIGURATION_DEFAULT_TH_ADDRESS

Default i2c i2c-th address.

CONFIGURATION_DEFAULT_RAIN_ADDRESS

Default i2c i2c-rain address.

CONFIGURATION_RESET_PIN

Input pin for reset configuration at startup.

CONFIGURATION_DEFAULT_NTP_SERVER

Default ntp server.

CONFIGURATION_DEFAULT_ETHERNET_DHCP_ENABLE

Default DHCP status.

CONFIGURATION_DEFAULT_ETHERNET_MAC

Default mac address.

CONFIGURATION_DEFAULT_ETHERNET_IP

Default ip address.

CONFIGURATION_DEFAULT_ETHERNET_NETMASK

Default netmask address.

CONFIGURATION_DEFAULT_ETHERNET_GATEWAY

Default gateway address.

CONFIGURATION_DEFAULT_ETHERNET_PRIMARY_DNS

Default primary dns address.

SENSOR_ERROR_COUNT_MAX
USE_POWER_DOWN

Enable or disable power down.

DEBOUNCING_POWER_DOWN_TIME_MS

Debounce power down ms.

W5500_CHIP_SELECT_PIN

Chip select pin for Wiznet W5500 ethernet module.

WDT_TIMER

Watchdog timer for periodically check microprocessor block states.

Possible value for WDT_TIMER are: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

RTC_FREQUENCY

Real time clock frequency for generating interrupt for awaken the microprocessor and execute timed tasks.

RTC_INTERRUPT_PIN

Interrupt pin for rtc.

TIMER1_INTERRUPT_TIME_MS

Value in milliseconds for generating timer1 interrupt.

TIMER1_TCNT1_VALUE

Timer1 timer overflow with 1024 prescaler.

USE_CONSTANTDATA_COUNT

Constantdata count.

SENSORS_RETRY_COUNT_MAX

Maximum number of retry for sensors reading.

SENSORS_RETRY_DELAY_MS

Waiting for reading between two attempts.

SENSORS_TESTING_DELAY_S
DATA_PROCESSING_RETRY_COUNT_MAX

Maximum number of retry for processing acquired data.

DATA_PROCESSING_RETRY_DELAY_MS

Wait time between two attempts.

DATA_SAVING_RETRY_COUNT_MAX

Maximum number of retry for saving data on SD-Card.

DATA_SAVING_DELAY_MS

Wait time between two attempts.

MQTT_RETRY_COUNT_MAX

Maximum number of retry for doing mqtt operations.

MQTT_DELAY_MS

Wait time between two attempts.

IP_STACK_TIMEOUT_MS

IPStack timeout.

SUPERVISOR_CONNECTION_RETRY_COUNT_MAX

Maximum number of retry for doing supervisor operations.

SUPERVISOR_CONNECTION_TIMEOUT_MS

Timeout for connecting.

NTP_RETRY_COUNT_MAX

Maximum number of retry for doing ntp operations.

NTP_RETRY_DELAY_MS

Wait time between two NTP attempts.

NTP_TIME_FOR_RESYNC_S

Maximum seconds for resync time over ntp.

NTP_MAX_DIFF_VALID_TIME_S
LCD_TIME_FOR_REINITIALIZE_S

Maximum seconds for reinitialize LCD.

DISPLAY_SET_MAX
ETHERNET_RETRY_COUNT_MAX

Maximum number of retry for doing ethernet operations.

ETHERNET_RETRY_DELAY_MS

Wait time between two attempts.

DATE_TIME_STRING_LENGTH

Length of datetime string %04u-%02u-%02uT%02u:%02u:%02u.

file sensor_config.h
#include <sensors_config.h>#include <mqtt_config.h>#include <constantdata_config.h>#include <gsm_config.h>#include <ntp_config.h>#include <typedef.h>
file stima.h
#include <stima_module.h>#include "stima-config.h"#include <typedef.h>#include <registers.h>#include <registers-master.h>#include <debug.h>#include <ArduinoLog.h>#include <StreamUtils.h>#include <i2c_config.h>#include <json_config.h>#include <ntp_config.h>#include <constantdata_config.h>#include <gsm_config.h>#include <SPI.h>#include <Wire.h>#include <pcf8563.h>#include <rmap_utility.h>#include <TimeLib.h>#include <SensorDriver.h>#include <i2c_utility.h>#include <arduinoJsonRPC.h>#include <ethernet_config.h>#include <Ethernet2.h>#include <IWatchdog.h>#include "STM32LowPower.h"#include <STM32RTC.h>#include <rtc.h>

Defines

WDTO_1S
SLEEP_MODE_PWR_DOWN

Enums

enum state_t

Main loop finite state machine.

Values:

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator REBOOT

reboot the machine

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enum supervisor_state_t

Supervisor task finite state machine.

Values:

enumerator SUPERVISOR_INIT

init task variables

enumerator SUPERVISOR_CONNECTION_LEVEL_TASK

enable hardware related tasks for doing connection

enumerator SUPERVISOR_WAIT_CONNECTION_LEVEL_TASK

enable hardware related tasks for doing connection

enumerator SUPERVISOR_TIME_LEVEL_TASK

enable time task for sync time with ntp server

enumerator SUPERVISOR_MANAGE_LEVEL_TASK

enable tasks for manage data (mqtt)

enumerator SUPERVISOR_TEST_SDCARD
enumerator SUPERVISOR_END

performs end operations and deactivate task

enumerator SUPERVISOR_WAIT_STATE

non-blocking waiting time

enum ethernet_state_t

Ethernet task finite state machine.

Values:

enumerator ETHERNET_INIT

init task variables

enumerator ETHERNET_CONNECT

begin ethernet operations

enumerator ETHERNET_OPEN_UDP_SOCKET

open udp socket

enumerator ETHERNET_END

performs end operations and deactivate task

enumerator ETHERNET_WAIT_STATE

non-blocking waiting time

enum sensors_reading_state_t

Sensors reading task finite state machine.

Values:

enumerator SENSORS_READING_INIT

init task variables

enumerator SENSORS_READING_SETUP_CHECK

check sensor errors

enumerator SENSORS_READING_POWER_OFF

power off sensor

enumerator SENSORS_READING_POWER_ON

power on sensor

enumerator SENSORS_READING_SETUP

if required try a sensor setup

enumerator SENSORS_READING_PREPARE

prepare sensor

enumerator SENSORS_READING_IS_PREPARED

check if the sensor has been prepared

enumerator SENSORS_READING_GET

read and get values from sensor

enumerator SENSORS_READING_IS_GETTED

check if the sensor has been readed

enumerator SENSORS_READING_READ

intermediate state (future implementation...)

enumerator SENSORS_READING_NEXT

go to next sensor

enumerator SENSORS_READING_END

performs end operations and deactivate task

enumerator SENSORS_READING_WAIT_STATE

non-blocking waiting time

enumerator SENSORS_READING_INIT

init task variables

enumerator SENSORS_SETUP_CHECK

check errors and if required try a sensor setup

enumerator SENSORS_READING_PREPARE

prepare sensor

enumerator SENSORS_READING_IS_PREPARED

check if the sensor has been prepared

enumerator SENSORS_READING_GET

read and get values from sensor

enumerator SENSORS_READING_IS_GETTED

check if the sensor has been readed

enumerator SENSORS_READING_READ

intermediate state (future implementation...)

enumerator SENSORS_READING_NEXT

go to next sensor

enumerator SENSORS_READING_END

performs end operations and deactivate task

enumerator SENSORS_READING_WAIT_STATE

non-blocking waiting time

enumerator SENSORS_READING_INIT
enumerator SENSORS_READING_PREPARE
enumerator SENSORS_READING_IS_PREPARED
enumerator SENSORS_READING_GET
enumerator SENSORS_READING_IS_GETTED
enumerator SENSORS_READING_READ
enumerator SENSORS_READING_NEXT
enumerator SENSORS_READING_END
enumerator SENSORS_READING_WAIT_STATE
enum time_state_t

Time task finite state machine.

Values:

enumerator TIME_INIT

init task variables

enumerator TIME_SEND_ONLINE_REQUEST

send ntp request

enumerator TIME_WAIT_ONLINE_RESPONSE

wait ntp response

enumerator TIME_SET_SYNC_NTP_PROVIDER

set ntp time

enumerator TIME_SET_SYNC_RTC_PROVIDER

set rtc time

enumerator TIME_END

performs end operations and deactivate task

enumerator TIME_WAIT_STATE

non-blocking waiting time

enum rpc_state_t

RPC task finite state machine.

Values:

enumerator RPC_INIT

init task variables

enumerator RPC_EXECUTE

execute function loop

enumerator RPC_END

performs end operations

Functions

JsonRPC streamRpc (false)

Remote Procedure Call object.

void realreboot()
time_t getSystemTime()
void init_logging(void)

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_system(void)

Init system.

Return

void.

void init_rpc(void)

Register RPC.

Return

void.

void init_buffers(void)

Init buffers.

Return

void.

void init_tasks(void)

Init tasks variable and state.

Return

void.

void init_pins(void)

Init hardware pins.

Return

void.

void init_wire(void)

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_spi(void)

Init SPI library.

Return

void.

void init_rtc(void)

Init RTC module.

Return

void.

void init_timer1(void)

Init Timer1 module.

Return

void.

void start_timer(void)

Start Timer1 module.

Return

void.

void stop_timer(void)

Stop Timer1 module.

Return

void.

void interrupt_task_1s(void)

1 seconds task.

Return

void.

void init_sensors(void)

Create and setup sensors.

Return

void.

void print_configuration(void)

Print current configuration.

Return

void.

void load_configuration(void)

Load configuration from EEPROM.

Return

void.

void save_configuration(bool)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void set_default_configuration(void)

Set default configuration to global configuration variable.

Return

void.

void setNextTimeForSensorReading(time_t *next_time, uint16_t time_s)
bool extractSensorsParams(JsonObject &params, char *driver, char *type, uint8_t *address, uint8_t *node)

Extract sensor's parameter.

Return

status code.

Parameters
  • [in] *params: json's params

  • [out] *driver: driver

  • [out] *type: type

  • [out] *address: address

  • [out] *node: node

int configure(JsonObject &params, JsonObject &result)

RPC configuration.

Return

status code.

Parameters
  • *params: json's params

  • &result: json's response

int prepare(JsonObject &params, JsonObject &result)

RPC prepare.

Return

status code.

Parameters
  • *params: json's params

  • &result: json's response

int getjson(JsonObject &params, JsonObject &result)

RPC get json.

Return

status code.

Parameters
  • *params: json's params

  • &result: json's response

int prepandget(JsonObject &params, JsonObject &result)

RPC prepare and get json.

Return

status code.

Parameters
  • *params: json's params

  • &result: json's response

int reboot(JsonObject &params, JsonObject &result)

RPC reboot.

Return

status code.

Parameters
  • *params: json's params

  • &result: json's response

void supervisor_task(void)

Supervisor task. Manage RTC and NTP sync and open/close gsm and ethernet connection.

Return

void.

void sensors_reading_task(bool do_prepare = true, bool do_get = true, char *driver = NULL, char *type = NULL, uint8_t address = 0, uint8_t node = 0, uint8_t *sensor_index = 0, uint32_t *wait_time = NULL)

Sensors reading Task. Read data from sensors.

Return

void.

Parameters
  • do_prepare: if true, execute the prepare sensor's procedure

  • do_get: if true, execute the get sensor's procedure

  • *driver: sensor's driver

  • *type: sensor's type

  • *address: sensor's address

  • *node: sensor's node

  • *sensor_index: sensor's index

  • *wait_time: sensor's wait time

void rtc_task(void)

Real Time Clock task. Read RTC time and sync system time with it.

Return

void.

void time_task(void)

Time task. Get time from NTP and sync RTC with it.

Return

void.

void ethernet_task(void)

Ethernet task. Manage Ethernet operation.

Return

void.

void rtc_interrupt_handler(void)

Real Time Clock interrupt handler.

Return

void.

HardwareSerial Serial1(PB11, PB10)
void wdt_enable(int wdt_timer)
void wdt_reset()
void wdt_disable()
void power_adc_disable()
void power_spi_disable()
void power_timer0_disable()
void power_timer1_disable()
void power_timer2_disable()
void power_adc_enable()
void power_spi_enable()
void power_timer0_enable()
void power_timer1_enable()
void power_timer2_enable()
void set_sleep_mode(int SLEEP_MODE_PWR_DOWN)
void sleep_enable()
void sleep_cpu()
void sleep_disable()

Variables

uint8_t sensors_count = 0
bool is_datetime_set

A valid date and time is setted and usable by station.

bool have_to_reboot

Request for a reboot as soon as possible.

configuration_t readable_configuration

Configuration for this module.

configuration_t writable_configuration

Configuration for this module.

uint8_t ready_tasks_count
uint32_t awakened_event_occurred_time_ms
EthernetUDP eth_udp_client

Ethernet UDP client structure.

EthernetClient eth_tcp_client

Ethernet TCP client structure.

SensorDriver *sensors[SENSORS_MAX]
bool is_first_run

If true, the first reading of the sensors was performed.

bool do_reset_first_run

If true, the first reading of the sensors was performed.

bool is_first_test

If true, the first reading of the sensors was performed.

bool is_test
bool is_time_set

If true, the time was readed from rtc or ntp and was setted in system.

bool is_time_for_sensors_reading_updated

If true, the next time has been calculated to read the sensors.

bool is_client_connected

If true, the client (ethernet or gsm) was connected to socket (TCP or UDP).

bool is_client_udp_socket_open

If true, the client (ethernet or gsm) was opened the UDP socket.

bool is_event_client_executed

If true, the client has executed its task.

bool is_event_time_executed

If true, the time task has executed.

bool do_ntp_sync

If true, you must update the time from ntp.

time_t last_ntp_sync

Last date and time when ntp sync was performed.

char json_sensors_data[SENSORS_MAX][JSON_BUFFER_LENGTH]

buffer containing the data read by sensors in json text format.

char json_sensors_data_test[JSON_BUFFER_LENGTH]

buffer containing the data read by sensors in json text format for test only.

time_t system_time

System time since 01/01/1970 00:00:00.

time_t next_ptr_time_for_sensors_reading

Next scheduled time (in seconds since 01/01/1970 00:0:00) for sensors reading.

time_t next_ptr_time_for_testing_sensors

Next scheduled time (in seconds since 01/01/1970 00:0:00) for sensors reading.

uint8_t sensor_reading_failed_count

Counter for failed and skipped sensors.

tmElements_t sensor_reading_time

Date and time corresponding to the last reading of the sensors.

time_t ptr_time_data

Readed data pointer stored on SD-Card for data send.

char stima_name[20]

Name of this module.

state_t state
supervisor_state_t supervisor_state

Supervisor task state.

ethernet_state_t ethernet_state

Ethernet task state.

uint8_t i2c_error
time_state_t time_state

Time task state.

sensors_reading_state_t sensors_reading_state
rpc_state_t rpc_state

RPC task state.

bool is_event_supervisor

Enable or disable the Supervisor task.

bool is_event_sensors_reading
bool is_event_sensors_reading_rpc

Enable or disable the Sensors reading task from RPC.

bool is_event_rtc

Enable or disable the Real Time Clock task.

bool is_event_time

Enable or disable the Time task.

bool is_event_ethernet

Enable or disable the Ethernet task.

bool is_event_rpc

Indicate if RPC is active or not.

STM32RTC &rtc = STM32RTC::getInstance()
file stima.ino
#include <debug_config.h>#include "stima.h"

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void init_logging()

Init logging system.

Return

void.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_buffers()

Init buffers.

Return

void.

void init_tasks()

Init tasks variable and state.

Return

void.

void init_pins()

Init hardware pins.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void reset_wire()
void init_spi()

Init SPI library.

Return

void.

void init_system()

Init system.

Return

void.

void init_rpc()

Register RPC.

Return

void.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_timer1()

Init Timer1 module.

Return

void.

void start_timer()

Start Timer1 module.

Return

void.

void stop_timer()

Stop Timer1 module.

Return

void.

ISR(TIMER1_OVF_vect)
void init_sensors()

Create and setup sensors.

Return

void.

void setNextTimeForSensorReading(time_t *next_time, uint16_t time_s)
void print_configuration()

Print current configuration.

Return

void.

void set_default_configuration()

Set default configuration to global configuration variable.

Return

void.

void save_configuration(bool is_default)

Save configuration to EEPROM.

Return

void.

Parameters
  • is_default: if true save default configuration; if false save current configuration.

void load_configuration()

Load configuration from EEPROM.

Return

void.

time_t getSystemTime()
void realreboot()
void interrupt_task_1s()

1 seconds task.

Return

void.

void supervisor_task()

Supervisor task. Manage RTC and NTP sync and open/close gsm and ethernet connection.

Return

void.

void rtc_task()

Real Time Clock task. Read RTC time and sync system time with it.

Return

void.

void time_task()

Time task. Get time from NTP and sync RTC with it.

Return

void.

void ethernet_task()

Ethernet task. Manage Ethernet operation.

Return

void.

void sensors_reading_task(bool do_prepare, bool do_get, char *driver, char *type, uint8_t address, uint8_t node, uint8_t *sensor_index, uint32_t *wait_time)

Sensors reading Task. Read data from sensors.

Return

void.

Parameters
  • do_prepare: if true, execute the prepare sensor's procedure

  • do_get: if true, execute the get sensor's procedure

  • *driver: sensor's driver

  • *type: sensor's type

  • *address: sensor's address

  • *node: sensor's node

  • *sensor_index: sensor's index

  • *wait_time: sensor's wait time

file event_groups.h
#include <freertos/event_groups.h>
file FreeRTOS.h
#include <freertos/FreeRTOS.h>
file queue.h
#include <freertos/queue.h>
file semphr.h
#include <freertos/semphr.h>
file stimawifi_config.h

Defines

SOFTWARE_VERSION
MAJOR_VERSION
MINOR_VERSION
WIFI_SSED
WIFI_PASSWORD
DEFAULT_SAMPLETIME
UDP_PORT
OLEDI2CADDRESS
LOG_LEVEL
DATE_TIME_STRING_LENGTH
HEAP_MIN_WARNING
STACK_MIN_WARNING
STIMAHTTP_PORT
FIRMWARE_TYPE
PMS_RESET
SCL_PIN
SDA_PIN
SENSORDRIVER_DRIVER_LEN
SENSORDRIVER_TYPE_LEN
SENSORDRIVER_META_LEN
CH
DATA_BURST
DATA_BURST_RECOVERY
DB_QUEUE_LEN
MQTT_QUEUE_LEN
MQTT_QUEUE_SPACELEFT_MEASURE
MQTT_QUEUE_SPACELEFT_PUBLISH
MQTT_QUEUE_SPACELEFT_RECOVERY
C3SCK
C3MISO
C3MOSI
C3SS
SPICLOCK
SDMAXFILE
SDCARD_ARCHIVE_FILE_NAME
LFMAXFILE
SDRECOVERYTIME
SQLITE_MEMORY
MQTT_TIMEOUT_MS

Timeout in milliseconds for mqtt stack.

IP_STACK_TIMEOUT_MS

IPStack timeout.

MQTT_PACKET_SIZE

Length in bytes for max mqtt packet size.

MQTT_SERVER_PORT
CONSTANTDATA_BTABLE_LENGTH

Maximum lenght of btable code plus terminator that describe one constant data.

CONSTANTDATA_VALUE_LENGTH

Maximum lenght of value plus terminator for one constant data.

file task.h
#include <freertos/task.h>
file timers.h
#include <freertos/timers.h>
file config_ext.h

Defines

BUILD_sqlite
SQLITE_OMIT_LOAD_EXTENSION
SQLITE_DQS
SQLITE_OS_OTHER
SQLITE_NO_SYNC
SQLITE_TEMP_STORE
SQLITE_DISABLE_LFS
SQLITE_DISABLE_DIRSYNC
SQLITE_SECURE_DELETE
SQLITE_DEFAULT_LOOKASIDE
YYSTACKDEPTH
SQLITE_SMALL_STACK
SQLITE_SORTER_PMASZ
SQLITE_DEFAULT_CACHE_SIZE
SQLITE_DEFAULT_MEMSTATUS
SQLITE_DEFAULT_MMAP_SIZE
SQLITE_CORE
SQLITE_SYSTEM_MALLOC
SQLITE_THREADSAFE
SQLITE_MUTEX_APPDEF
SQLITE_OMIT_WAL
SQLITE_DISABLE_FTS3_UNICODE
SQLITE_DISABLE_FTS4_DEFERRED
SQLITE_LIKE_DOESNT_MATCH_BLOBS
SQLITE_DEFAULT_FOREIGN_KEYS
SQLITE_DEFAULT_LOCKING_MODE
SQLITE_DEFAULT_PAGE_SIZE
SQLITE_DEFAULT_PCACHE_INITSZ
SQLITE_MAX_DEFAULT_PAGE_SIZE
SQLITE_POWERSAFE_OVERWRITE
SQLITE_MAX_EXPR_DEPTH
SQLITE_ENABLE_UPDATE_DELETE_LIMIT
file esp32.cpp
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdint.h>#include <unistd.h>#include <time.h>#include <sqlite3.h>#include <Arduino.h>#include <esp_spi_flash.h>#include <sys/stat.h>#include <assert.h>#include <sys/types.h>#include <sys/file.h>#include <sys/param.h>#include <errno.h>#include <fcntl.h>#include "shox96_0_2.h"

Defines

dbg_printf(...)
SQLITE_ESP32VFS_BUFFERSZ
MAXPATHNAME
F_OK
R_OK
W_OK

Typedefs

typedef struct ESP32File ESP32File

Functions

void SerialPrintln(const char *str)
int encode_unsigned_varint(uint8_t *buffer, uint64_t value)
uint64_t decode_unsigned_varint(const uint8_t *data, int &decoded_bytes)
static int ESP32DirectWrite(ESP32File *p, const void *zBuf, int iAmt, sqlite_int64 iOfst)
static int ESP32FlushBuffer(ESP32File *p)
static int ESP32Close(sqlite3_file *pFile)
static int ESP32Read(sqlite3_file *pFile, void *zBuf, int iAmt, sqlite_int64 iOfst)
static int ESP32Write(sqlite3_file *pFile, const void *zBuf, int iAmt, sqlite_int64 iOfst)
static int ESP32Truncate(sqlite3_file *pFile, sqlite_int64 size)
static int ESP32Sync(sqlite3_file *pFile, int flags)
static int ESP32FileSize(sqlite3_file *pFile, sqlite_int64 *pSize)
static int ESP32Lock(sqlite3_file *pFile, int eLock)
static int ESP32Unlock(sqlite3_file *pFile, int eLock)
static int ESP32CheckReservedLock(sqlite3_file *pFile, int *pResOut)
static int ESP32FileControl(sqlite3_file *pFile, int op, void *pArg)
static int ESP32SectorSize(sqlite3_file *pFile)
static int ESP32DeviceCharacteristics(sqlite3_file *pFile)
static int ESP32Access(sqlite3_vfs *pVfs, const char *zPath, int flags, int *pResOut)
static int ESP32Open(sqlite3_vfs *pVfs, const char *zName, sqlite3_file *pFile, int flags, int *pOutFlags)
static int ESP32Delete(sqlite3_vfs *pVfs, const char *zPath, int dirSync)
static int ESP32FullPathname(sqlite3_vfs *pVfs, const char *zPath, int nPathOut, char *zPathOut)
static void *ESP32DlOpen(sqlite3_vfs *pVfs, const char *zPath)
static void ESP32DlError(sqlite3_vfs *pVfs, int nByte, char *zErrMsg)
static void ESP32DlClose(sqlite3_vfs *pVfs, void *pHandle)
static int ESP32Randomness(sqlite3_vfs *pVfs, int nByte, char *zByte)
static int ESP32Sleep(sqlite3_vfs *pVfs, int nMicro)
static int ESP32CurrentTime(sqlite3_vfs *pVfs, double *pTime)
sqlite3_vfs *sqlite3_ESP32vfs(void)
static void shox96_0_2c(sqlite3_context *context, int argc, sqlite3_value **argv)
static void shox96_0_2d(sqlite3_context *context, int argc, sqlite3_value **argv)
static void unishox1c(sqlite3_context *context, int argc, sqlite3_value **argv)
static void unishox1d(sqlite3_context *context, int argc, sqlite3_value **argv)
int registerFunctions(sqlite3 *db, const char **pzErrMsg, const struct sqlite3_api_routines *pThunk)
void errorLogCallback(void *pArg, int iErrCode, const char *zMsg)
int sqlite3_os_init(void)
int sqlite3_os_end(void)

Variables

static char dbrootpath[MAXPATHNAME + 1]
static void(*)(void) ESP32DlSym (sqlite3_vfs *pVfs, void *pH, const char *z)
file shox96_0_2.cpp
#include <time.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#include <stdint.h>#include "shox96_0_2.h"

Defines

USE_64K_LOOKUP
NICE_LEN_FOR_PRIOR
NICE_LEN_FOR_OTHER

Typedefs

typedef unsigned char byte

Enums

enum [anonymous]

Values:

enumerator SHX_STATE_1
enumerator SHX_STATE_2
enum [anonymous]

Values:

enumerator SHX_SET1
enumerator SHX_SET1A
enumerator SHX_SET1B
enumerator SHX_SET2
enumerator SHX_SET3
enumerator SHX_SET4
enumerator SHX_SET4A

Functions

int append_bits(char *out, int ol, unsigned int code, int clen, byte state)
int encodeCount(char *out, int ol, int count)
int matchOccurance(const char *in, int len, int l, char *out, int *ol)
int matchLine(const char *in, int len, int l, char *out, int *ol, struct lnk_lst *prev_lines)
int shox96_0_2_compress(const char *in, int len, char *out, struct lnk_lst *prev_lines)
int getBitVal(const char *in, int bit_no, int count)
int getCodeIdx(char *code_type, const char *in, int len, int *bit_no_p)
int getNumFromBits(const char *in, int bit_no, int count)
int readCount(const char *in, int *bit_no_p, int len)
int shox96_0_2_decompress(const char *in, int len, char *out, struct lnk_lst *prev_lines)

Variables

static unsigned int c_95[95] = {16384, 16256, 15744, 16192, 15328, 15344, 15360, 16064, 15264, 15296, 15712, 15200, 14976, 15040, 14848, 15104, 14528, 14592, 14656, 14688, 14720, 14752, 14784, 14816, 14832, 14464, 15552, 15488, 15616, 15168, 15680, 16000, 15872, 10752, 8576, 8192, 8320, 9728, 8672, 8608, 8384, 11264, 9024, 8992, 12160, 8544, 11520, 11008, 8512, 9008, 12032, 11776, 10240, 8448, 8960, 8640, 9040, 8688, 9048, 15840, 16288, 15856, 16128, 16224, 16368, 40960, 6144, 0, 2048, 24576, 7680, 6656, 3072, 49152, 13312, 12800, 63488, 5632, 53248, 45056, 5120, 13056, 61440, 57344, 32768, 4096, 12288, 7168, 13568, 7936, 13696, 15776, 16320, 15808, 16352}
static unsigned char l_95[95] = {3, 11, 11, 11, 12, 12, 9, 10, 11, 11, 11, 11, 10, 10, 9, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 10, 10, 10, 10, 11, 11, 10, 9, 8, 11, 9, 10, 7, 12, 11, 10, 8, 12, 12, 9, 11, 8, 8, 11, 12, 9, 8, 7, 10, 11, 11, 13, 12, 13, 12, 11, 12, 10, 11, 12, 4, 7, 5, 6, 3, 8, 7, 6, 4, 8, 8, 5, 7, 4, 4, 7, 8, 5, 4, 3, 6, 7, 7, 9, 8, 9, 11, 11, 11, 12}
static char SET2_STR[] = {'9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '.', ',', '-', '/', '=', '+', ' ', '(', ')', '$', '%', '&', ';', ':', '<', '>', '*', '"', '{', '}', '[', ']', '@', '?', '\'', '^', '#', '_', '!', '\\', '|', '~', '`', '\0'}
byte to_match_repeats_earlier = 1
byte to_match_repeats_within = 1
unsigned int mask[] = {0x8000, 0xC000, 0xE000, 0xF000, 0xF800, 0xFC00, 0xFE00, 0xFF00}
char vcode[32] = {2 + (0 << 3), 3 + (3 << 3), 3 + (1 << 3), 4 + (6 << 3), 0, 4 + (4 << 3), 3 + (2 << 3), 4 + (8 << 3), 0, 0, 0, 4 + (7 << 3), 0, 4 + (5 << 3), 0, 5 + (9 << 3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5 + (10 << 3)}
char hcode[32] = {1 + (1 << 3), 2 + (0 << 3), 0, 3 + (2 << 3), 0, 0, 0, 5 + (3 << 3), 0, 0, 0, 0, 0, 0, 0, 5 + (5 << 3), 0, 0, 0, 0, 0, 0, 0, 5 + (4 << 3), 0, 0, 0, 0, 0, 0, 0, 5 + (6 << 3)}
char sets[][11] = {{' ', ' ', 'e', 't', 'a', 'o', 'i', 'n', 's', 'r', 'l'}, {'c', 'd', 'h', 'u', 'p', 'm', 'b', 'g', 'w', 'f', 'y'}, {'v', 'k', 'q', 'j', 'x', 'z', ' ', ' ', ' ', ' ', ' '}, {' ', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8'}, {'.', ',', '-', '/', '=', '+', ' ', '(', ')', '$', '%'}, {'&', ';', ':', '<', '>', '*', '"', '{', '}', '[', ']'}, {'@', '?', '\'', '^', '#', '_', '!', '\\', '|', '~', '`'}}
file shox96_0_2.h

Functions

int shox96_0_2_compress(const char *in, int len, char *out, struct lnk_lst *prev_lines)
int shox96_0_2_decompress(const char *in, int len, char *out, struct lnk_lst *prev_lines)
file sqlite3.c
#include "config_ext.h"#include <stdarg.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include <stddef.h>#include <time.h>#include <math.h>

Defines

SQLITE_CORE
SQLITE_AMALGAMATION
SQLITE_PRIVATE
SQLITE_UDL_CAPABLE_PARSER
SQLITEINT_H
SQLITE_TCLAPI
SQLITE_MSVC_H
OS_VXWORKS
HAVE_FCHOWN
HAVE_LSTAT
GCC_VERSION
MSVC_VERSION
SQLITE_HAVE_C99_MATH_FUNCS
deliberate_fall_through
SQLITE3_H
SQLITE_EXTERN
SQLITE_API
SQLITE_CDECL
SQLITE_APICALL
SQLITE_STDCALL
SQLITE_CALLBACK
SQLITE_SYSAPI
SQLITE_DEPRECATED
SQLITE_EXPERIMENTAL
SQLITE_VERSION
SQLITE_VERSION_NUMBER
SQLITE_SOURCE_ID
SQLITE_OK
SQLITE_ERROR
SQLITE_INTERNAL
SQLITE_PERM
SQLITE_ABORT
SQLITE_BUSY
SQLITE_LOCKED
SQLITE_NOMEM
SQLITE_READONLY
SQLITE_INTERRUPT
SQLITE_IOERR
SQLITE_CORRUPT
SQLITE_NOTFOUND
SQLITE_FULL
SQLITE_CANTOPEN
SQLITE_PROTOCOL
SQLITE_EMPTY
SQLITE_SCHEMA
SQLITE_TOOBIG
SQLITE_CONSTRAINT
SQLITE_MISMATCH
SQLITE_MISUSE
SQLITE_NOLFS
SQLITE_AUTH
SQLITE_FORMAT
SQLITE_RANGE
SQLITE_NOTADB
SQLITE_NOTICE
SQLITE_WARNING
SQLITE_ROW
SQLITE_DONE
SQLITE_ERROR_MISSING_COLLSEQ
SQLITE_ERROR_RETRY
SQLITE_ERROR_SNAPSHOT
SQLITE_IOERR_READ
SQLITE_IOERR_SHORT_READ
SQLITE_IOERR_WRITE
SQLITE_IOERR_FSYNC
SQLITE_IOERR_DIR_FSYNC
SQLITE_IOERR_TRUNCATE
SQLITE_IOERR_FSTAT
SQLITE_IOERR_UNLOCK
SQLITE_IOERR_RDLOCK
SQLITE_IOERR_DELETE
SQLITE_IOERR_BLOCKED
SQLITE_IOERR_NOMEM
SQLITE_IOERR_ACCESS
SQLITE_IOERR_CHECKRESERVEDLOCK
SQLITE_IOERR_LOCK
SQLITE_IOERR_CLOSE
SQLITE_IOERR_DIR_CLOSE
SQLITE_IOERR_SHMOPEN
SQLITE_IOERR_SHMSIZE
SQLITE_IOERR_SHMLOCK
SQLITE_IOERR_SHMMAP
SQLITE_IOERR_SEEK
SQLITE_IOERR_DELETE_NOENT
SQLITE_IOERR_MMAP
SQLITE_IOERR_GETTEMPPATH
SQLITE_IOERR_CONVPATH
SQLITE_IOERR_VNODE
SQLITE_IOERR_AUTH
SQLITE_IOERR_BEGIN_ATOMIC
SQLITE_IOERR_COMMIT_ATOMIC
SQLITE_IOERR_ROLLBACK_ATOMIC
SQLITE_IOERR_DATA
SQLITE_IOERR_CORRUPTFS
SQLITE_IOERR_IN_PAGE
SQLITE_LOCKED_SHAREDCACHE
SQLITE_LOCKED_VTAB
SQLITE_BUSY_RECOVERY
SQLITE_BUSY_SNAPSHOT
SQLITE_BUSY_TIMEOUT
SQLITE_CANTOPEN_NOTEMPDIR
SQLITE_CANTOPEN_ISDIR
SQLITE_CANTOPEN_FULLPATH
SQLITE_CANTOPEN_CONVPATH
SQLITE_CANTOPEN_DIRTYWAL
SQLITE_CORRUPT_VTAB
SQLITE_CORRUPT_SEQUENCE
SQLITE_CORRUPT_INDEX
SQLITE_READONLY_RECOVERY
SQLITE_READONLY_CANTLOCK
SQLITE_READONLY_ROLLBACK
SQLITE_READONLY_DBMOVED
SQLITE_READONLY_CANTINIT
SQLITE_READONLY_DIRECTORY
SQLITE_ABORT_ROLLBACK
SQLITE_CONSTRAINT_CHECK
SQLITE_CONSTRAINT_COMMITHOOK
SQLITE_CONSTRAINT_FOREIGNKEY
SQLITE_CONSTRAINT_FUNCTION
SQLITE_CONSTRAINT_NOTNULL
SQLITE_CONSTRAINT_PRIMARYKEY
SQLITE_CONSTRAINT_TRIGGER
SQLITE_CONSTRAINT_UNIQUE
SQLITE_CONSTRAINT_VTAB
SQLITE_CONSTRAINT_ROWID
SQLITE_CONSTRAINT_PINNED
SQLITE_CONSTRAINT_DATATYPE
SQLITE_NOTICE_RECOVER_WAL
SQLITE_NOTICE_RECOVER_ROLLBACK
SQLITE_NOTICE_RBU
SQLITE_WARNING_AUTOINDEX
SQLITE_AUTH_USER
SQLITE_OK_LOAD_PERMANENTLY
SQLITE_OPEN_READONLY
SQLITE_OPEN_READWRITE
SQLITE_OPEN_CREATE
SQLITE_OPEN_DELETEONCLOSE
SQLITE_OPEN_EXCLUSIVE
SQLITE_OPEN_AUTOPROXY
SQLITE_OPEN_URI
SQLITE_OPEN_MEMORY
SQLITE_OPEN_MAIN_DB
SQLITE_OPEN_TEMP_DB
SQLITE_OPEN_TRANSIENT_DB
SQLITE_OPEN_MAIN_JOURNAL
SQLITE_OPEN_TEMP_JOURNAL
SQLITE_OPEN_SUBJOURNAL
SQLITE_OPEN_SUPER_JOURNAL
SQLITE_OPEN_NOMUTEX
SQLITE_OPEN_FULLMUTEX
SQLITE_OPEN_SHAREDCACHE
SQLITE_OPEN_PRIVATECACHE
SQLITE_OPEN_WAL
SQLITE_OPEN_NOFOLLOW
SQLITE_OPEN_EXRESCODE
SQLITE_OPEN_MASTER_JOURNAL
SQLITE_IOCAP_ATOMIC
SQLITE_IOCAP_ATOMIC512
SQLITE_IOCAP_ATOMIC1K
SQLITE_IOCAP_ATOMIC2K
SQLITE_IOCAP_ATOMIC4K
SQLITE_IOCAP_ATOMIC8K
SQLITE_IOCAP_ATOMIC16K
SQLITE_IOCAP_ATOMIC32K
SQLITE_IOCAP_ATOMIC64K
SQLITE_IOCAP_SAFE_APPEND
SQLITE_IOCAP_SEQUENTIAL
SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN
SQLITE_IOCAP_POWERSAFE_OVERWRITE
SQLITE_IOCAP_IMMUTABLE
SQLITE_IOCAP_BATCH_ATOMIC
SQLITE_LOCK_NONE
SQLITE_LOCK_SHARED
SQLITE_LOCK_RESERVED
SQLITE_LOCK_PENDING
SQLITE_LOCK_EXCLUSIVE
SQLITE_SYNC_NORMAL
SQLITE_SYNC_FULL
SQLITE_SYNC_DATAONLY
SQLITE_FCNTL_LOCKSTATE
SQLITE_FCNTL_GET_LOCKPROXYFILE
SQLITE_FCNTL_SET_LOCKPROXYFILE
SQLITE_FCNTL_LAST_ERRNO
SQLITE_FCNTL_SIZE_HINT
SQLITE_FCNTL_CHUNK_SIZE
SQLITE_FCNTL_FILE_POINTER
SQLITE_FCNTL_SYNC_OMITTED
SQLITE_FCNTL_WIN32_AV_RETRY
SQLITE_FCNTL_PERSIST_WAL
SQLITE_FCNTL_OVERWRITE
SQLITE_FCNTL_VFSNAME
SQLITE_FCNTL_POWERSAFE_OVERWRITE
SQLITE_FCNTL_PRAGMA
SQLITE_FCNTL_BUSYHANDLER
SQLITE_FCNTL_TEMPFILENAME
SQLITE_FCNTL_MMAP_SIZE
SQLITE_FCNTL_TRACE
SQLITE_FCNTL_HAS_MOVED
SQLITE_FCNTL_SYNC
SQLITE_FCNTL_COMMIT_PHASETWO
SQLITE_FCNTL_WIN32_SET_HANDLE
SQLITE_FCNTL_WAL_BLOCK
SQLITE_FCNTL_ZIPVFS
SQLITE_FCNTL_RBU
SQLITE_FCNTL_VFS_POINTER
SQLITE_FCNTL_JOURNAL_POINTER
SQLITE_FCNTL_WIN32_GET_HANDLE
SQLITE_FCNTL_PDB
SQLITE_FCNTL_BEGIN_ATOMIC_WRITE
SQLITE_FCNTL_COMMIT_ATOMIC_WRITE
SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE
SQLITE_FCNTL_LOCK_TIMEOUT
SQLITE_FCNTL_DATA_VERSION
SQLITE_FCNTL_SIZE_LIMIT
SQLITE_FCNTL_CKPT_DONE
SQLITE_FCNTL_RESERVE_BYTES
SQLITE_FCNTL_CKPT_START
SQLITE_FCNTL_EXTERNAL_READER
SQLITE_FCNTL_CKSM_FILE
SQLITE_FCNTL_RESET_CACHE
SQLITE_GET_LOCKPROXYFILE
SQLITE_SET_LOCKPROXYFILE
SQLITE_LAST_ERRNO
SQLITE_ACCESS_EXISTS
SQLITE_ACCESS_READWRITE
SQLITE_ACCESS_READ
SQLITE_SHM_UNLOCK
SQLITE_SHM_LOCK
SQLITE_SHM_SHARED
SQLITE_SHM_EXCLUSIVE
SQLITE_SHM_NLOCK
SQLITE_CONFIG_SINGLETHREAD
SQLITE_CONFIG_MULTITHREAD
SQLITE_CONFIG_SERIALIZED
SQLITE_CONFIG_MALLOC
SQLITE_CONFIG_GETMALLOC
SQLITE_CONFIG_SCRATCH
SQLITE_CONFIG_PAGECACHE
SQLITE_CONFIG_HEAP
SQLITE_CONFIG_MEMSTATUS
SQLITE_CONFIG_MUTEX
SQLITE_CONFIG_GETMUTEX
SQLITE_CONFIG_LOOKASIDE
SQLITE_CONFIG_PCACHE
SQLITE_CONFIG_GETPCACHE
SQLITE_CONFIG_LOG
SQLITE_CONFIG_URI
SQLITE_CONFIG_PCACHE2
SQLITE_CONFIG_GETPCACHE2
SQLITE_CONFIG_COVERING_INDEX_SCAN
SQLITE_CONFIG_SQLLOG
SQLITE_CONFIG_MMAP_SIZE
SQLITE_CONFIG_WIN32_HEAPSIZE
SQLITE_CONFIG_PCACHE_HDRSZ
SQLITE_CONFIG_PMASZ
SQLITE_CONFIG_STMTJRNL_SPILL
SQLITE_CONFIG_SMALL_MALLOC
SQLITE_CONFIG_SORTERREF_SIZE
SQLITE_CONFIG_MEMDB_MAXSIZE
SQLITE_CONFIG_ROWID_IN_VIEW
SQLITE_DBCONFIG_MAINDBNAME
SQLITE_DBCONFIG_LOOKASIDE
SQLITE_DBCONFIG_ENABLE_FKEY
SQLITE_DBCONFIG_ENABLE_TRIGGER
SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
SQLITE_DBCONFIG_ENABLE_QPSG
SQLITE_DBCONFIG_TRIGGER_EQP
SQLITE_DBCONFIG_RESET_DATABASE
SQLITE_DBCONFIG_DEFENSIVE
SQLITE_DBCONFIG_WRITABLE_SCHEMA
SQLITE_DBCONFIG_LEGACY_ALTER_TABLE
SQLITE_DBCONFIG_DQS_DML
SQLITE_DBCONFIG_DQS_DDL
SQLITE_DBCONFIG_ENABLE_VIEW
SQLITE_DBCONFIG_LEGACY_FILE_FORMAT
SQLITE_DBCONFIG_TRUSTED_SCHEMA
SQLITE_DBCONFIG_STMT_SCANSTATUS
SQLITE_DBCONFIG_REVERSE_SCANORDER
SQLITE_DBCONFIG_MAX
SQLITE_DENY
SQLITE_IGNORE
SQLITE_CREATE_INDEX
SQLITE_CREATE_TABLE
SQLITE_CREATE_TEMP_INDEX
SQLITE_CREATE_TEMP_TABLE
SQLITE_CREATE_TEMP_TRIGGER
SQLITE_CREATE_TEMP_VIEW
SQLITE_CREATE_TRIGGER
SQLITE_CREATE_VIEW
SQLITE_DELETE
SQLITE_DROP_INDEX
SQLITE_DROP_TABLE
SQLITE_DROP_TEMP_INDEX
SQLITE_DROP_TEMP_TABLE
SQLITE_DROP_TEMP_TRIGGER
SQLITE_DROP_TEMP_VIEW
SQLITE_DROP_TRIGGER
SQLITE_DROP_VIEW
SQLITE_INSERT
SQLITE_PRAGMA
SQLITE_READ
SQLITE_SELECT
SQLITE_TRANSACTION
SQLITE_UPDATE
SQLITE_ATTACH
SQLITE_DETACH
SQLITE_ALTER_TABLE
SQLITE_REINDEX
SQLITE_ANALYZE
SQLITE_CREATE_VTABLE
SQLITE_DROP_VTABLE
SQLITE_FUNCTION
SQLITE_SAVEPOINT
SQLITE_COPY
SQLITE_RECURSIVE
SQLITE_TRACE_STMT
SQLITE_TRACE_PROFILE
SQLITE_TRACE_ROW
SQLITE_TRACE_CLOSE
SQLITE_LIMIT_LENGTH
SQLITE_LIMIT_SQL_LENGTH
SQLITE_LIMIT_COLUMN
SQLITE_LIMIT_EXPR_DEPTH
SQLITE_LIMIT_COMPOUND_SELECT
SQLITE_LIMIT_VDBE_OP
SQLITE_LIMIT_FUNCTION_ARG
SQLITE_LIMIT_ATTACHED
SQLITE_LIMIT_LIKE_PATTERN_LENGTH
SQLITE_LIMIT_VARIABLE_NUMBER
SQLITE_LIMIT_TRIGGER_DEPTH
SQLITE_LIMIT_WORKER_THREADS
SQLITE_PREPARE_PERSISTENT
SQLITE_PREPARE_NORMALIZE
SQLITE_PREPARE_NO_VTAB
SQLITE_INTEGER
SQLITE_FLOAT
SQLITE_BLOB
SQLITE_NULL
SQLITE_TEXT
SQLITE3_TEXT
SQLITE_UTF8
SQLITE_UTF16LE
SQLITE_UTF16BE
SQLITE_UTF16
SQLITE_ANY
SQLITE_UTF16_ALIGNED
SQLITE_DETERMINISTIC
SQLITE_DIRECTONLY
SQLITE_SUBTYPE
SQLITE_INNOCUOUS
SQLITE_RESULT_SUBTYPE
SQLITE_STATIC
SQLITE_TRANSIENT
SQLITE_WIN32_DATA_DIRECTORY_TYPE
SQLITE_WIN32_TEMP_DIRECTORY_TYPE
SQLITE_TXN_NONE
SQLITE_TXN_READ
SQLITE_TXN_WRITE
SQLITE_INDEX_SCAN_UNIQUE
SQLITE_INDEX_CONSTRAINT_EQ
SQLITE_INDEX_CONSTRAINT_GT
SQLITE_INDEX_CONSTRAINT_LE
SQLITE_INDEX_CONSTRAINT_LT
SQLITE_INDEX_CONSTRAINT_GE
SQLITE_INDEX_CONSTRAINT_MATCH
SQLITE_INDEX_CONSTRAINT_LIKE
SQLITE_INDEX_CONSTRAINT_GLOB
SQLITE_INDEX_CONSTRAINT_REGEXP
SQLITE_INDEX_CONSTRAINT_NE
SQLITE_INDEX_CONSTRAINT_ISNOT
SQLITE_INDEX_CONSTRAINT_ISNOTNULL
SQLITE_INDEX_CONSTRAINT_ISNULL
SQLITE_INDEX_CONSTRAINT_IS
SQLITE_INDEX_CONSTRAINT_LIMIT
SQLITE_INDEX_CONSTRAINT_OFFSET
SQLITE_INDEX_CONSTRAINT_FUNCTION
SQLITE_MUTEX_FAST
SQLITE_MUTEX_RECURSIVE
SQLITE_MUTEX_STATIC_MAIN
SQLITE_MUTEX_STATIC_MEM
SQLITE_MUTEX_STATIC_MEM2
SQLITE_MUTEX_STATIC_OPEN
SQLITE_MUTEX_STATIC_PRNG
SQLITE_MUTEX_STATIC_LRU
SQLITE_MUTEX_STATIC_LRU2
SQLITE_MUTEX_STATIC_PMEM
SQLITE_MUTEX_STATIC_APP1
SQLITE_MUTEX_STATIC_APP2
SQLITE_MUTEX_STATIC_APP3
SQLITE_MUTEX_STATIC_VFS1
SQLITE_MUTEX_STATIC_VFS2
SQLITE_MUTEX_STATIC_VFS3
SQLITE_MUTEX_STATIC_MASTER
SQLITE_TESTCTRL_FIRST
SQLITE_TESTCTRL_PRNG_SAVE
SQLITE_TESTCTRL_PRNG_RESTORE
SQLITE_TESTCTRL_PRNG_RESET
SQLITE_TESTCTRL_FK_NO_ACTION
SQLITE_TESTCTRL_BITVEC_TEST
SQLITE_TESTCTRL_FAULT_INSTALL
SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS
SQLITE_TESTCTRL_PENDING_BYTE
SQLITE_TESTCTRL_ASSERT
SQLITE_TESTCTRL_ALWAYS
SQLITE_TESTCTRL_RESERVE
SQLITE_TESTCTRL_JSON_SELFCHECK
SQLITE_TESTCTRL_OPTIMIZATIONS
SQLITE_TESTCTRL_ISKEYWORD
SQLITE_TESTCTRL_SCRATCHMALLOC
SQLITE_TESTCTRL_INTERNAL_FUNCTIONS
SQLITE_TESTCTRL_LOCALTIME_FAULT
SQLITE_TESTCTRL_EXPLAIN_STMT
SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD
SQLITE_TESTCTRL_NEVER_CORRUPT
SQLITE_TESTCTRL_VDBE_COVERAGE
SQLITE_TESTCTRL_BYTEORDER
SQLITE_TESTCTRL_ISINIT
SQLITE_TESTCTRL_SORTER_MMAP
SQLITE_TESTCTRL_IMPOSTER
SQLITE_TESTCTRL_PARSER_COVERAGE
SQLITE_TESTCTRL_RESULT_INTREAL
SQLITE_TESTCTRL_PRNG_SEED
SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS
SQLITE_TESTCTRL_SEEK_COUNT
SQLITE_TESTCTRL_TRACEFLAGS
SQLITE_TESTCTRL_TUNE
SQLITE_TESTCTRL_LOGEST
SQLITE_TESTCTRL_USELONGDOUBLE
SQLITE_TESTCTRL_LAST
SQLITE_STATUS_MEMORY_USED
SQLITE_STATUS_PAGECACHE_USED
SQLITE_STATUS_PAGECACHE_OVERFLOW
SQLITE_STATUS_SCRATCH_USED
SQLITE_STATUS_SCRATCH_OVERFLOW
SQLITE_STATUS_MALLOC_SIZE
SQLITE_STATUS_PARSER_STACK
SQLITE_STATUS_PAGECACHE_SIZE
SQLITE_STATUS_SCRATCH_SIZE
SQLITE_STATUS_MALLOC_COUNT
SQLITE_DBSTATUS_LOOKASIDE_USED
SQLITE_DBSTATUS_CACHE_USED
SQLITE_DBSTATUS_SCHEMA_USED
SQLITE_DBSTATUS_STMT_USED
SQLITE_DBSTATUS_LOOKASIDE_HIT
SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE
SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL
SQLITE_DBSTATUS_CACHE_HIT
SQLITE_DBSTATUS_CACHE_MISS
SQLITE_DBSTATUS_CACHE_WRITE
SQLITE_DBSTATUS_DEFERRED_FKS
SQLITE_DBSTATUS_CACHE_USED_SHARED
SQLITE_DBSTATUS_CACHE_SPILL
SQLITE_DBSTATUS_MAX
SQLITE_STMTSTATUS_FULLSCAN_STEP
SQLITE_STMTSTATUS_SORT
SQLITE_STMTSTATUS_AUTOINDEX
SQLITE_STMTSTATUS_VM_STEP
SQLITE_STMTSTATUS_REPREPARE
SQLITE_STMTSTATUS_RUN
SQLITE_STMTSTATUS_FILTER_MISS
SQLITE_STMTSTATUS_FILTER_HIT
SQLITE_STMTSTATUS_MEMUSED
SQLITE_CHECKPOINT_PASSIVE
SQLITE_CHECKPOINT_FULL
SQLITE_CHECKPOINT_RESTART
SQLITE_CHECKPOINT_TRUNCATE
SQLITE_VTAB_CONSTRAINT_SUPPORT
SQLITE_VTAB_INNOCUOUS
SQLITE_VTAB_DIRECTONLY
SQLITE_VTAB_USES_ALL_SCHEMAS
SQLITE_ROLLBACK
SQLITE_FAIL
SQLITE_REPLACE
SQLITE_SCANSTAT_NLOOP
SQLITE_SCANSTAT_NVISIT
SQLITE_SCANSTAT_EST
SQLITE_SCANSTAT_NAME
SQLITE_SCANSTAT_EXPLAIN
SQLITE_SCANSTAT_SELECTID
SQLITE_SCANSTAT_PARENTID
SQLITE_SCANSTAT_NCYCLE
SQLITE_SCANSTAT_COMPLEX
SQLITE_SERIALIZE_NOCOPY
SQLITE_DESERIALIZE_FREEONCLOSE
SQLITE_DESERIALIZE_RESIZEABLE
SQLITE_DESERIALIZE_READONLY
_SQLITE3RTREE_H_
NOT_WITHIN
PARTLY_WITHIN
FULLY_WITHIN
_FTS5_H
FTS5_TOKENIZE_QUERY
FTS5_TOKENIZE_PREFIX
FTS5_TOKENIZE_DOCUMENT
FTS5_TOKENIZE_AUX
FTS5_TOKEN_COLOCATED
SQLITE_MUTEX_STATIC_TEMPDIR
SQLITE_MAX_LENGTH
SQLITE_MAX_COLUMN
SQLITE_MAX_SQL_LENGTH
SQLITE_MAX_COMPOUND_SELECT
SQLITE_MAX_VDBE_OP
SQLITE_MAX_FUNCTION_ARG
SQLITE_DEFAULT_WAL_AUTOCHECKPOINT
SQLITE_MAX_ATTACHED
SQLITE_MAX_VARIABLE_NUMBER
SQLITE_MAX_PAGE_SIZE
SQLITE_MAX_PAGE_COUNT
SQLITE_MAX_LIKE_PATTERN_LENGTH
SQLITE_MAX_TRIGGER_DEPTH
__has_extension(x)
SQLITE_ATOMIC_INTRINSICS
AtomicLoad(PTR)
AtomicStore(PTR, VAL)
SQLITE_INT_TO_PTR(X)
SQLITE_PTR_TO_INT(X)
SQLITE_NOINLINE
SQLITE_INLINE
SQLITE_DIRECT_OVERFLOW_READ
SQLITE_MALLOC_SOFT_LIMIT
_XOPEN_SOURCE
NDEBUG
testcase(X)
TESTONLY(X)
VVA_ONLY(X)
ALWAYS(X)
NEVER(X)
OK_IF_ALWAYS_TRUE(X)
OK_IF_ALWAYS_FALSE(X)
ONLY_IF_REALLOC_STRESS(X)
OSTRACE(X)
SQLITE_DIGIT_SEPARATOR
IS_BIG_INT(X)
likely(X)
unlikely(X)
SQLITE_HASH_H
sqliteHashFirst(H)
sqliteHashNext(E)
sqliteHashData(E)
sqliteHashCount(H)
TK_SEMI
TK_EXPLAIN
TK_QUERY
TK_PLAN
TK_BEGIN
TK_TRANSACTION
TK_DEFERRED
TK_IMMEDIATE
TK_EXCLUSIVE
TK_COMMIT
TK_END
TK_ROLLBACK
TK_SAVEPOINT
TK_RELEASE
TK_TO
TK_TABLE
TK_CREATE
TK_IF
TK_NOT
TK_EXISTS
TK_TEMP
TK_LP
TK_RP
TK_AS
TK_COMMA
TK_WITHOUT
TK_ABORT
TK_ACTION
TK_AFTER
TK_ANALYZE
TK_ASC
TK_ATTACH
TK_BEFORE
TK_BY
TK_CASCADE
TK_CAST
TK_CONFLICT
TK_DATABASE
TK_DESC
TK_DETACH
TK_EACH
TK_FAIL
TK_OR
TK_AND
TK_IS
TK_MATCH
TK_LIKE_KW
TK_BETWEEN
TK_IN
TK_ISNULL
TK_NOTNULL
TK_NE
TK_EQ
TK_GT
TK_LE
TK_LT
TK_GE
TK_ESCAPE
TK_ID
TK_COLUMNKW
TK_DO
TK_FOR
TK_IGNORE
TK_INITIALLY
TK_INSTEAD
TK_NO
TK_KEY
TK_OF
TK_OFFSET
TK_PRAGMA
TK_RAISE
TK_RECURSIVE
TK_REPLACE
TK_RESTRICT
TK_ROW
TK_ROWS
TK_TRIGGER
TK_VACUUM
TK_VIEW
TK_VIRTUAL
TK_WITH
TK_NULLS
TK_FIRST
TK_LAST
TK_CURRENT
TK_FOLLOWING
TK_PARTITION
TK_PRECEDING
TK_RANGE
TK_UNBOUNDED
TK_EXCLUDE
TK_GROUPS
TK_OTHERS
TK_TIES
TK_GENERATED
TK_ALWAYS
TK_MATERIALIZED
TK_REINDEX
TK_RENAME
TK_CTIME_KW
TK_ANY
TK_BITAND
TK_BITOR
TK_LSHIFT
TK_RSHIFT
TK_PLUS
TK_MINUS
TK_STAR
TK_SLASH
TK_REM
TK_CONCAT
TK_PTR
TK_COLLATE
TK_BITNOT
TK_ON
TK_INDEXED
TK_STRING
TK_JOIN_KW
TK_CONSTRAINT
TK_DEFAULT
TK_NULL
TK_PRIMARY
TK_UNIQUE
TK_CHECK
TK_REFERENCES
TK_AUTOINCR
TK_INSERT
TK_DELETE
TK_UPDATE
TK_SET
TK_DEFERRABLE
TK_FOREIGN
TK_DROP
TK_UNION
TK_ALL
TK_EXCEPT
TK_INTERSECT
TK_SELECT
TK_VALUES
TK_DISTINCT
TK_DOT
TK_FROM
TK_JOIN
TK_USING
TK_ORDER
TK_GROUP
TK_HAVING
TK_LIMIT
TK_WHERE
TK_RETURNING
TK_INTO
TK_NOTHING
TK_FLOAT
TK_BLOB
TK_INTEGER
TK_VARIABLE
TK_CASE
TK_WHEN
TK_THEN
TK_ELSE
TK_INDEX
TK_ALTER
TK_ADD
TK_WINDOW
TK_OVER
TK_FILTER
TK_COLUMN
TK_AGG_FUNCTION
TK_AGG_COLUMN
TK_TRUEFALSE
TK_ISNOT
TK_FUNCTION
TK_UPLUS
TK_UMINUS
TK_TRUTH
TK_REGISTER
TK_VECTOR
TK_SELECT_COLUMN
TK_IF_NULL_ROW
TK_ASTERISK
TK_SPAN
TK_ERROR
TK_QNUMBER
TK_SPACE
TK_ILLEGAL
assert(e)
SQLITE_BIG_DBL
OMIT_TEMPDB
SQLITE_MAX_FILE_FORMAT
SQLITE_DEFAULT_FILE_FORMAT
SQLITE_DEFAULT_RECURSIVE_TRIGGERS
SQLITE_MAX_WORKER_THREADS
SQLITE_DEFAULT_WORKER_THREADS
SQLITE_DEFAULT_SORTERREF_SIZE
offsetof(STRUCTURE, FIELD)
MIN(A, B)
MAX(A, B)
SWAP(TYPE, A, B)
SQLITE_ASCII
UINT32_TYPE
UINT16_TYPE
INT16_TYPE
UINT8_TYPE
INT8_TYPE
LONGDOUBLE_TYPE
SQLITE_MAX_U32
SQLITE_PTRSIZE
SQLITE_WITHIN(P, S, E)
SQLITE_OVERFLOW(P, S, E)
SQLITE_BYTEORDER
SQLITE_BIGENDIAN
SQLITE_LITTLEENDIAN
SQLITE_UTF16NATIVE
LARGEST_INT64
LARGEST_UINT64
SMALLEST_INT64
ROUND8(x)
ROUND8P(x)
ROUNDDOWN8(x)
EIGHT_BYTE_ALIGNMENT(X)
SQLITE_MAX_MMAP_SIZE
TREETRACE(K, P, S, X)
TREETRACE_ENABLED
WHERETRACE(K, X)
LEGACY_SCHEMA_TABLE
LEGACY_TEMP_SCHEMA_TABLE
PREFERRED_SCHEMA_TABLE
PREFERRED_TEMP_SCHEMA_TABLE
SCHEMA_ROOT
SCHEMA_TABLE(x)
ArraySize(X)
IsPowerOfTwo(X)
SQLITE_DYNAMIC
SQLITE_WSD
GLOBAL(t, v)
sqlite3GlobalConfig
UNUSED_PARAMETER(x)
UNUSED_PARAMETER2(x, y)
BMS
MASKBIT(n)
MASKBIT64(n)
MASKBIT32(n)
SMASKBIT32(n)
ALLBITS
TOPBIT
_SQLITE_OS_H_
SQLITE_OS_SETUP_H
SQLITE_OS_KV
SQLITE_OS_UNIX
SQLITE_OS_WIN
SET_FULLSYNC(x, y)
SQLITE_MAX_PATHLEN
SQLITE_DEFAULT_SECTOR_SIZE
SQLITE_TEMP_FILE_PREFIX
NO_LOCK
SHARED_LOCK
RESERVED_LOCK
PENDING_LOCK
EXCLUSIVE_LOCK
PENDING_BYTE
RESERVED_BYTE
SHARED_FIRST
SHARED_SIZE
SQLITE_FCNTL_DB_UNCHANGED
SQLITE_PAGER_H
SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT
PAGER_SJ_PGNO_COMPUTED(x)
PAGER_SJ_PGNO(x)
PAGER_OMIT_JOURNAL
PAGER_MEMORY
PAGER_LOCKINGMODE_QUERY
PAGER_LOCKINGMODE_NORMAL
PAGER_LOCKINGMODE_EXCLUSIVE
PAGER_JOURNALMODE_QUERY
PAGER_JOURNALMODE_DELETE
PAGER_JOURNALMODE_PERSIST
PAGER_JOURNALMODE_OFF
PAGER_JOURNALMODE_TRUNCATE
PAGER_JOURNALMODE_MEMORY
PAGER_JOURNALMODE_WAL
PAGER_GET_NOCONTENT
PAGER_GET_READONLY
PAGER_SYNCHRONOUS_OFF
PAGER_SYNCHRONOUS_NORMAL
PAGER_SYNCHRONOUS_FULL
PAGER_SYNCHRONOUS_EXTRA
PAGER_SYNCHRONOUS_MASK
PAGER_FULLFSYNC
PAGER_CKPT_FULLFSYNC
PAGER_CACHESPILL
PAGER_FLAGS_MASK
sqlite3PagerWalWriteLock(y, z)
sqlite3PagerWalDb(x, y)
disable_simulated_io_errors()
enable_simulated_io_errors()
SQLITE_BTREE_H
SQLITE_N_BTREE_META
SQLITE_DEFAULT_AUTOVACUUM
BTREE_AUTOVACUUM_NONE
BTREE_AUTOVACUUM_FULL
BTREE_AUTOVACUUM_INCR
BTREE_OMIT_JOURNAL
BTREE_MEMORY
BTREE_SINGLE
BTREE_UNORDERED
BTREE_INTKEY
BTREE_BLOBKEY
BTREE_FREE_PAGE_COUNT
BTREE_SCHEMA_VERSION
BTREE_FILE_FORMAT
BTREE_DEFAULT_CACHE_SIZE
BTREE_LARGEST_ROOT_PAGE
BTREE_TEXT_ENCODING
BTREE_USER_VERSION
BTREE_INCR_VACUUM
BTREE_APPLICATION_ID
BTREE_DATA_VERSION
BTREE_HINT_RANGE
BTREE_BULKLOAD
BTREE_SEEK_EQ
BTREE_WRCSR
BTREE_FORDELETE
BTREE_SAVEPOSITION
BTREE_AUXDELETE
BTREE_APPEND
BTREE_PREFORMAT
sqlite3BtreeSeekCount(X)
sqlite3BtreeLeave(X)
sqlite3BtreeLeaveCursor(X)
sqlite3BtreeLeaveAll(X)
sqlite3BtreeHoldsMutex(X)
sqlite3BtreeHoldsAllMutexes(X)
sqlite3SchemaMutexHeld(X, Y, Z)
SQLITE_VDBE_H
P4_NOTUSED
P4_TRANSIENT
P4_STATIC
P4_COLLSEQ
P4_INT32
P4_SUBPROGRAM
P4_TABLE
P4_FREE_IF_LE
P4_DYNAMIC
P4_FUNCDEF
P4_KEYINFO
P4_EXPR
P4_MEM
P4_VTAB
P4_REAL
P4_INT64
P4_INTARRAY
P4_FUNCCTX
P4_TABLEREF
P5_ConstraintNotNull
P5_ConstraintUnique
P5_ConstraintCheck
P5_ConstraintFK
COLNAME_NAME
COLNAME_DECLTYPE
COLNAME_DATABASE
COLNAME_TABLE
COLNAME_COLUMN
COLNAME_N
ADDR(X)
OP_Savepoint
OP_AutoCommit
OP_Transaction
OP_Checkpoint
OP_JournalMode
OP_Vacuum
OP_VFilter
OP_VUpdate
OP_Init
OP_Goto
OP_Gosub
OP_InitCoroutine
OP_Yield
OP_MustBeInt
OP_Jump
OP_Once
OP_If
OP_IfNot
OP_IsType
OP_Not
OP_IfNullRow
OP_SeekLT
OP_SeekLE
OP_SeekGE
OP_SeekGT
OP_IfNotOpen
OP_IfNoHope
OP_NoConflict
OP_NotFound
OP_Found
OP_SeekRowid
OP_NotExists
OP_Last
OP_IfSizeBetween
OP_SorterSort
OP_Sort
OP_Rewind
OP_SorterNext
OP_Prev
OP_Next
OP_IdxLE
OP_IdxGT
OP_IdxLT
OP_Or
OP_And
OP_IdxGE
OP_RowSetRead
OP_RowSetTest
OP_Program
OP_FkIfZero
OP_IsNull
OP_NotNull
OP_Ne
OP_Eq
OP_Gt
OP_Le
OP_Lt
OP_Ge
OP_ElseEq
OP_IfPos
OP_IfNotZero
OP_DecrJumpZero
OP_IncrVacuum
OP_VNext
OP_Filter
OP_PureFunc
OP_Function
OP_Return
OP_EndCoroutine
OP_HaltIfNull
OP_Halt
OP_Integer
OP_Int64
OP_String
OP_BeginSubrtn
OP_Null
OP_SoftNull
OP_Blob
OP_Variable
OP_Move
OP_Copy
OP_SCopy
OP_IntCopy
OP_FkCheck
OP_ResultRow
OP_CollSeq
OP_AddImm
OP_RealAffinity
OP_Cast
OP_Permutation
OP_Compare
OP_IsTrue
OP_ZeroOrNull
OP_Offset
OP_Column
OP_TypeCheck
OP_Affinity
OP_MakeRecord
OP_Count
OP_ReadCookie
OP_SetCookie
OP_ReopenIdx
OP_BitAnd
OP_BitOr
OP_ShiftLeft
OP_ShiftRight
OP_Add
OP_Subtract
OP_Multiply
OP_Divide
OP_Remainder
OP_Concat
OP_OpenRead
OP_OpenWrite
OP_BitNot
OP_OpenDup
OP_OpenAutoindex
OP_String8
OP_OpenEphemeral
OP_SorterOpen
OP_SequenceTest
OP_OpenPseudo
OP_Close
OP_ColumnsUsed
OP_SeekScan
OP_SeekHit
OP_Sequence
OP_NewRowid
OP_Insert
OP_RowCell
OP_Delete
OP_ResetCount
OP_SorterCompare
OP_SorterData
OP_RowData
OP_Rowid
OP_NullRow
OP_SeekEnd
OP_IdxInsert
OP_SorterInsert
OP_IdxDelete
OP_DeferredSeek
OP_IdxRowid
OP_FinishSeek
OP_Destroy
OP_Clear
OP_ResetSorter
OP_CreateBtree
OP_SqlExec
OP_ParseSchema
OP_LoadAnalysis
OP_DropTable
OP_DropIndex
OP_Real
OP_DropTrigger
OP_IntegrityCk
OP_RowSetAdd
OP_Param
OP_FkCounter
OP_MemMax
OP_OffsetLimit
OP_AggInverse
OP_AggStep
OP_AggStep1
OP_AggValue
OP_AggFinal
OP_Expire
OP_CursorLock
OP_CursorUnlock
OP_TableLock
OP_VBegin
OP_VCreate
OP_VDestroy
OP_VOpen
OP_VCheck
OP_VInitIn
OP_VColumn
OP_VRename
OP_Pagecount
OP_MaxPgcnt
OP_ClrSubtype
OP_GetSubtype
OP_SetSubtype
OP_FilterAdd
OP_Trace
OP_CursorHint
OP_ReleaseReg
OP_Noop
OP_Explain
OP_Abortable
OPFLG_JUMP
OPFLG_IN1
OPFLG_IN2
OPFLG_IN3
OPFLG_OUT2
OPFLG_OUT3
OPFLG_NCYCLE
OPFLG_JUMP0
OPFLG_INITIALIZER
SQLITE_MX_JUMP_OPCODE
SQLITE_PREPARE_SAVESQL
SQLITE_PREPARE_MASK
sqlite3VdbeVerifyNoMallocRequired(A, B)
sqlite3VdbeVerifyNoResultRow(A)
sqlite3VdbeVerifyAbortable(A, B)
sqlite3VdbeNoJumpsOutsideSubrtn(A, B, C, D)
ExplainQueryPlan(P)
ExplainQueryPlan2(V, P)
ExplainQueryPlanPop(P)
ExplainQueryPlanParent(P)
sqlite3ExplainBreakpoint(A, B)
sqlite3VdbeReleaseRegisters(P, A, N, M, F)
VdbeComment(X)
VdbeNoopComment(X)
VdbeModuleComment(X)
VdbeCoverage(v)
VdbeCoverageIf(v, x)
VdbeCoverageAlwaysTaken(v)
VdbeCoverageNeverTaken(v)
VdbeCoverageNeverNull(v)
VdbeCoverageNeverNullIf(v, x)
VdbeCoverageEqNe(v)
VDBE_OFFSET_LINENO(x)
sqlite3VdbeScanStatus(a, b, c, d, e, f)
sqlite3VdbeScanStatusRange(a, b, c, d)
sqlite3VdbeScanStatusCounters(a, b, c, d)
PGHDR_CLEAN
PGHDR_DIRTY
PGHDR_WRITEABLE
PGHDR_NEED_SYNC
PGHDR_DONT_WRITE
PGHDR_MMAP
PGHDR_WAL_APPEND
SQLITE_MUTEX_OMIT
sqlite3_mutex_alloc(X)
sqlite3_mutex_free(X)
sqlite3_mutex_enter(X)
sqlite3_mutex_try(X)
sqlite3_mutex_leave(X)
sqlite3_mutex_held(X)
sqlite3_mutex_notheld(X)
sqlite3MutexAlloc(X)
sqlite3MutexInit()
sqlite3MutexEnd()
MUTEX_LOGIC(X)
SQLITE_DEFAULT_SYNCHRONOUS
SQLITE_DEFAULT_WAL_SYNCHRONOUS
DbHasProperty(D, I, P)
DbHasAnyProperty(D, I, P)
DbSetProperty(D, I, P)
DbClearProperty(D, I, P)
DB_SchemaLoaded
DB_UnresetViews
DB_ResetWanted
SQLITE_N_LIMIT
DisableLookaside
EnableLookaside
LOOKASIDE_SMALL
SQLITE_FUNC_HASH_SZ
SQLITE_FUNC_HASH(C, L)
SQLITE_TRACE_LEGACY
SQLITE_TRACE_XPROFILE
SQLITE_TRACE_NONLEGACY_MASK
SQLITE_MAX_DB
SCHEMA_ENC(db)
ENC(db)
HI(X)
SQLITE_WriteSchema
SQLITE_LegacyFileFmt
SQLITE_FullColNames
SQLITE_FullFSync
SQLITE_CkptFullFSync
SQLITE_CacheSpill
SQLITE_ShortColNames
SQLITE_TrustedSchema
SQLITE_NullCallback
SQLITE_IgnoreChecks
SQLITE_StmtScanStatus
SQLITE_NoCkptOnClose
SQLITE_ReverseOrder
SQLITE_RecTriggers
SQLITE_ForeignKeys
SQLITE_AutoIndex
SQLITE_LoadExtension
SQLITE_LoadExtFunc
SQLITE_EnableTrigger
SQLITE_DeferFKs
SQLITE_QueryOnly
SQLITE_CellSizeCk
SQLITE_Fts3Tokenizer
SQLITE_EnableQPSG
SQLITE_TriggerEQP
SQLITE_ResetDatabase
SQLITE_LegacyAlter
SQLITE_NoSchemaError
SQLITE_Defensive
SQLITE_DqsDDL
SQLITE_DqsDML
SQLITE_EnableView
SQLITE_CountRows
SQLITE_CorruptRdOnly
SQLITE_ReadUncommit
SQLITE_FkNoAction
DBFLAG_SchemaChange
DBFLAG_PreferBuiltin
DBFLAG_Vacuum
DBFLAG_VacuumInto
DBFLAG_SchemaKnownOk
DBFLAG_InternalFunc
DBFLAG_EncodingFixed
SQLITE_QueryFlattener
SQLITE_WindowFunc
SQLITE_GroupByOrder
SQLITE_FactorOutConst
SQLITE_DistinctOpt
SQLITE_CoverIdxScan
SQLITE_OrderByIdxJoin
SQLITE_Transitive
SQLITE_OmitNoopJoin
SQLITE_CountOfView
SQLITE_CursorHints
SQLITE_Stat4
SQLITE_PushDown
SQLITE_SimplifyJoin
SQLITE_SkipScan
SQLITE_PropagateConst
SQLITE_MinMaxOpt
SQLITE_SeekScan
SQLITE_OmitOrderBy
SQLITE_BloomFilter
SQLITE_BloomPulldown
SQLITE_BalancedMerge
SQLITE_ReleaseReg
SQLITE_FlttnUnionAll
SQLITE_IndexedExpr
SQLITE_Coroutines
SQLITE_NullUnusedCols
SQLITE_OnePass
SQLITE_AllOpts
OptimizationDisabled(db, mask)
OptimizationEnabled(db, mask)
ConstFactorOk(P)
SQLITE_STATE_OPEN
SQLITE_STATE_CLOSED
SQLITE_STATE_SICK
SQLITE_STATE_BUSY
SQLITE_STATE_ERROR
SQLITE_STATE_ZOMBIE
SQLITE_FUNC_ENCMASK
SQLITE_FUNC_LIKE
SQLITE_FUNC_CASE
SQLITE_FUNC_EPHEM
SQLITE_FUNC_NEEDCOLL
SQLITE_FUNC_LENGTH
SQLITE_FUNC_TYPEOF
SQLITE_FUNC_BYTELEN
SQLITE_FUNC_COUNT
SQLITE_FUNC_UNLIKELY
SQLITE_FUNC_CONSTANT
SQLITE_FUNC_MINMAX
SQLITE_FUNC_SLOCHNG
SQLITE_FUNC_TEST
SQLITE_FUNC_RUNONLY
SQLITE_FUNC_WINDOW
SQLITE_FUNC_INTERNAL
SQLITE_FUNC_DIRECT
SQLITE_FUNC_UNSAFE
SQLITE_FUNC_INLINE
SQLITE_FUNC_BUILTIN
SQLITE_FUNC_ANYORDER
INLINEFUNC_coalesce
INLINEFUNC_implies_nonnull_row
INLINEFUNC_expr_implies_expr
INLINEFUNC_expr_compare
INLINEFUNC_affinity
INLINEFUNC_iif
INLINEFUNC_sqlite_offset
INLINEFUNC_unlikely
FUNCTION(zName, nArg, iArg, bNC, xFunc)
VFUNCTION(zName, nArg, iArg, bNC, xFunc)
SFUNCTION(zName, nArg, iArg, bNC, xFunc)
MFUNCTION(zName, nArg, xPtr, xFunc)
JFUNCTION(zName, nArg, bUseCache, bWS, bRS, bJsonB, iArg, xFunc)
INLINE_FUNC(zName, nArg, iArg, mFlags)
TEST_FUNC(zName, nArg, iArg, mFlags)
DFUNCTION(zName, nArg, iArg, bNC, xFunc)
PURE_DATE(zName, nArg, iArg, bNC, xFunc)
FUNCTION2(zName, nArg, iArg, bNC, xFunc, extraFlags)
STR_FUNCTION(zName, nArg, pArg, bNC, xFunc)
LIKEFUNC(zName, nArg, arg, flags)
WAGGREGATE(zName, nArg, arg, nc, xStep, xFinal, xValue, xInverse, f)
INTERNAL_FUNCTION(zName, nArg, xFunc)
SAVEPOINT_BEGIN
SAVEPOINT_RELEASE
SAVEPOINT_ROLLBACK
COLTYPE_CUSTOM
COLTYPE_ANY
COLTYPE_BLOB
COLTYPE_INT
COLTYPE_INTEGER
COLTYPE_REAL
COLTYPE_TEXT
SQLITE_N_STDTYPE
COLFLAG_PRIMKEY
COLFLAG_HIDDEN
COLFLAG_HASTYPE
COLFLAG_UNIQUE
COLFLAG_SORTERREF
COLFLAG_VIRTUAL
COLFLAG_STORED
COLFLAG_NOTAVAIL
COLFLAG_BUSY
COLFLAG_HASCOLL
COLFLAG_NOEXPAND
COLFLAG_GENERATED
COLFLAG_NOINSERT
SQLITE_SO_ASC
SQLITE_SO_DESC
SQLITE_SO_UNDEFINED
SQLITE_AFF_NONE
SQLITE_AFF_BLOB
SQLITE_AFF_TEXT
SQLITE_AFF_NUMERIC
SQLITE_AFF_INTEGER
SQLITE_AFF_REAL
SQLITE_AFF_FLEXNUM
sqlite3IsNumericAffinity(X)
SQLITE_AFF_MASK
SQLITE_JUMPIFNULL
SQLITE_NULLEQ
SQLITE_NOTNULL
SQLITE_VTABRISK_Low
SQLITE_VTABRISK_Normal
SQLITE_VTABRISK_High
TF_Readonly
TF_HasHidden
TF_HasPrimaryKey
TF_Autoincrement
TF_HasStat1
TF_HasVirtual
TF_HasStored
TF_HasGenerated
TF_WithoutRowid
TF_MaybeReanalyze
TF_NoVisibleRowid
TF_OOOHidden
TF_HasNotNull
TF_Shadow
TF_HasStat4
TF_Ephemeral
TF_Eponymous
TF_Strict
TABTYP_NORM
TABTYP_VTAB
TABTYP_VIEW
IsView(X)
IsOrdinaryTable(X)
IsVirtual(X)
ExprIsVtab(X)
IsHiddenColumn(X)
IsOrdinaryHiddenColumn(X)
HasRowid(X)
VisibleRowid(X)
ViewCanHaveRowid
OE_None
OE_Rollback
OE_Abort
OE_Fail
OE_Ignore
OE_Replace
OE_Update
OE_Restrict
OE_SetNull
OE_SetDflt
OE_Cascade
OE_Default
KEYINFO_ORDER_DESC
KEYINFO_ORDER_BIGNULL
SQLITE_IDXTYPE_APPDEF
SQLITE_IDXTYPE_UNIQUE
SQLITE_IDXTYPE_PRIMARYKEY
SQLITE_IDXTYPE_IPK
IsPrimaryKeyIndex(X)
IsUniqueIndex(X)
XN_ROWID
XN_EXPR
SQLITE_TOKEN_QUOTED
SQLITE_TOKEN_KEYWORD
AggInfoColumnReg(A, I)
AggInfoFuncReg(A, I)
EP_OuterON
EP_InnerON
EP_Distinct
EP_HasFunc
EP_Agg
EP_FixedCol
EP_VarSelect
EP_DblQuoted
EP_InfixFunc
EP_Collate
EP_Commuted
EP_IntValue
EP_xIsSelect
EP_Skip
EP_Reduced
EP_Win
EP_TokenOnly
EP_FullSize
EP_IfNullRow
EP_Unlikely
EP_ConstFunc
EP_CanBeNull
EP_Subquery
EP_Leaf
EP_WinFunc
EP_Subrtn
EP_Quoted
EP_Static
EP_IsTrue
EP_IsFalse
EP_FromDDL
EP_Propagate
ExprHasProperty(E, P)
ExprHasAllProperty(E, P)
ExprSetProperty(E, P)
ExprClearProperty(E, P)
ExprAlwaysTrue(E)
ExprAlwaysFalse(E)
ExprIsFullSize(E)
ExprUseUToken(E)
ExprUseUValue(E)
ExprUseWOfst(E)
ExprUseWJoin(E)
ExprUseXList(E)
ExprUseXSelect(E)
ExprUseYTab(E)
ExprUseYWin(E)
ExprUseYSub(E)
EP_NoReduce
EP_Immutable
ExprSetVVAProperty(E, P)
ExprHasVVAProperty(E, P)
ExprClearVVAProperties(E)
EXPR_FULLSIZE
EXPR_REDUCEDSIZE
EXPR_TOKENONLYSIZE
EXPRDUP_REDUCE
IsWindowFunc(p)
ENAME_NAME
ENAME_SPAN
ENAME_TAB
ENAME_ROWID
EU4_NONE
EU4_IDX
EU4_EXPR
JT_INNER
JT_CROSS
JT_NATURAL
JT_LEFT
JT_RIGHT
JT_OUTER
JT_LTORJ
JT_ERROR
WHERE_ORDERBY_NORMAL
WHERE_ORDERBY_MIN
WHERE_ORDERBY_MAX
WHERE_ONEPASS_DESIRED
WHERE_ONEPASS_MULTIROW
WHERE_DUPLICATES_OK
WHERE_OR_SUBCLAUSE
WHERE_GROUPBY
WHERE_DISTINCTBY
WHERE_WANT_DISTINCT
WHERE_SORTBYGROUP
WHERE_AGG_DISTINCT
WHERE_ORDERBY_LIMIT
WHERE_RIGHT_JOIN
WHERE_USE_LIMIT
WHERE_DISTINCT_NOOP
WHERE_DISTINCT_UNIQUE
WHERE_DISTINCT_ORDERED
WHERE_DISTINCT_UNORDERED
NC_AllowAgg
NC_PartIdx
NC_IsCheck
NC_GenCol
NC_HasAgg
NC_IdxExpr
NC_SelfRef
NC_Subquery
NC_UEList
NC_UAggInfo
NC_UUpsert
NC_UBaseReg
NC_MinMaxAgg
NC_Complex
NC_AllowWin
NC_HasWin
NC_IsDDL
NC_InAggFunc
NC_FromDDL
NC_NoSelect
NC_Where
NC_OrderAgg
SF_Distinct
SF_All
SF_Resolved
SF_Aggregate
SF_HasAgg
SF_UsesEphemeral
SF_Expanded
SF_HasTypeInfo
SF_Compound
SF_Values
SF_MultiValue
SF_NestedFrom
SF_MinMaxAgg
SF_Recursive
SF_FixedLimit
SF_MaybeConvert
SF_Converted
SF_IncludeHidden
SF_ComplexResult
SF_WhereBegin
SF_WinRewrite
SF_View
SF_NoopOrderBy
SF_UFSrcCheck
SF_PushDown
SF_MultiPart
SF_CopyCte
SF_OrderByReqd
SF_UpdateFrom
SF_Correlated
IsNestedFrom(S)
SRT_Union
SRT_Except
SRT_Exists
SRT_Discard
SRT_DistFifo
SRT_DistQueue
IgnorableDistinct(X)
SRT_Queue
SRT_Fifo
IgnorableOrderby(X)
SRT_Output
SRT_Mem
SRT_Set
SRT_EphemTab
SRT_Coroutine
SRT_Table
SRT_Upfrom
DbMaskTest(M, I)
DbMaskZero(M)
DbMaskSet(M, I)
DbMaskAllZero(M)
DbMaskNonZero(M)
PARSE_MODE_NORMAL
PARSE_MODE_DECLARE_VTAB
PARSE_MODE_RENAME
PARSE_MODE_UNMAP
PARSE_HDR(X)
PARSE_HDR_SZ
PARSE_RECURSE_SZ
PARSE_TAIL_SZ
PARSE_TAIL(X)
IN_DECLARE_VTAB
IN_RENAME_OBJECT
IN_SPECIAL_PARSE
OPFLAG_NCHANGE
OPFLAG_NOCHNG
OPFLAG_EPHEM
OPFLAG_LASTROWID
OPFLAG_ISUPDATE
OPFLAG_APPEND
OPFLAG_USESEEKRESULT
OPFLAG_ISNOOP
OPFLAG_LENGTHARG
OPFLAG_TYPEOFARG
OPFLAG_BYTELENARG
OPFLAG_BULKCSR
OPFLAG_SEEKEQ
OPFLAG_FORDELETE
OPFLAG_P2ISREG
OPFLAG_PERMUTE
OPFLAG_SAVEPOSITION
OPFLAG_AUXDELETE
OPFLAG_NOCHNG_MAGIC
OPFLAG_PREFORMAT
TRIGGER_BEFORE
TRIGGER_AFTER
SQLITE_PRINTF_INTERNAL
SQLITE_PRINTF_SQLFUNC
SQLITE_PRINTF_MALLOCED
isMalloced(X)
INITFLAG_AlterMask
INITFLAG_AlterRename
INITFLAG_AlterDrop
INITFLAG_AlterAdd
SQLITE_NTUNE
Tuning(X)
CORRUPT_DB
WRC_Continue
WRC_Prune
WRC_Abort
M10d_Yes
M10d_Any
M10d_No
SQLITE_SKIP_UTF8(zIn)
SQLITE_CORRUPT_BKPT
SQLITE_MISUSE_BKPT
SQLITE_CANTOPEN_BKPT
SQLITE_NOMEM_BKPT
SQLITE_IOERR_NOMEM_BKPT
SQLITE_CORRUPT_PGNO(P)
sqlite3Toupper(x)
sqlite3Isspace(x)
sqlite3Isalnum(x)
sqlite3Isalpha(x)
sqlite3Isdigit(x)
sqlite3Isxdigit(x)
sqlite3Tolower(x)
sqlite3Isquote(x)
sqlite3JsonId1(x)
sqlite3JsonId2(x)
sqlite3Strlen30NN(C)
sqlite3StrNICmp
sqlite3StackAllocRaw(D, N)
sqlite3StackAllocRawNN(D, N)
sqlite3StackFree(D, P)
sqlite3StackFreeNN(D, P)
sqlite3MemoryBarrier()
sqlite3MutexWarnOnContention(x)
EXP754
MAN754
IsNaN(X)
IsOvfl(X)
sqlite3ColumnPropertiesFromName(T, C)
sqlite3CodecQueryParameters(A, B, C)
ONEPASS_OFF
ONEPASS_SINGLE
ONEPASS_MULTI
SQLITE_ECEL_DUP
SQLITE_ECEL_FACTOR
SQLITE_ECEL_REF
SQLITE_ECEL_OMITREF
LOCATE_VIEW
LOCATE_NOERR
sqlite3SetMakeRecordP5(A, B)
sqlite3ParseToplevel(p)
sqlite3IsToplevel(p)
getVarint32(A, B)
getVarint32NR(A, B)
putVarint32(A, B)
getVarint
putVarint
sqlite3FileSuffix3(X, Y)
sqlite3CloseExtensions(X)
sqlite3VtabInSync(db)
SQLITE_FAULTINJECTOR_MALLOC
SQLITE_FAULTINJECTOR_COUNT
IN_INDEX_ROWID
IN_INDEX_EPH
IN_INDEX_INDEX_ASC
IN_INDEX_INDEX_DESC
IN_INDEX_NOOP
IN_INDEX_NOOP_OK
IN_INDEX_MEMBERSHIP
IN_INDEX_LOOP
sqlite3SelectExprHeight(x)
sqlite3ExprCheckHeight(x, y)
sqlite3ConnectionBlocked(x, y)
sqlite3ConnectionUnlocked(x)
sqlite3ConnectionClosed(x)
IOTRACE(A)
sqlite3VdbeIOTraceSql(X)
sqlite3MemdebugSetType(X, Y)
sqlite3MemdebugHasType(X, Y)
sqlite3MemdebugNoType(X, Y)
MEMTYPE_HEAP
MEMTYPE_LOOKASIDE
MEMTYPE_PCACHE
IS_STMT_SCANSTATUS(db)
_OS_COMMON_H_
TIMER_START
TIMER_END
TIMER_ELAPSED
SimulateIOErrorBenign(X)
SimulateIOError(A)
SimulateDiskfullError(A)
OpenCounter(X)
CTIMEOPT_VAL_(opt)
CTIMEOPT_VAL(opt)
CTIMEOPT_VAL2_(opt1, opt2)
CTIMEOPT_VAL2(opt)
SQLITE_USE_URI
SQLITE_ALLOW_COVERING_INDEX_SCAN
SQLITE_STMTJRNL_SPILL
SQLITE_MEMDB_DEFAULT_MAXSIZE
SQLITE_VDBEINT_H
SQLITE_MAX_SCHEMA_RETRY
VDBE_DISPLAY_P4
CURTYPE_BTREE
CURTYPE_SORTER
CURTYPE_VTAB
CURTYPE_PSEUDO
IsNullCursor(P)
CACHE_STALE
SQLITE_FRAME_MAGIC
VdbeFrameMem(p)
MEMCELLSIZE
MEM_Undefined
MEM_Null
MEM_Str
MEM_Int
MEM_Real
MEM_Blob
MEM_IntReal
MEM_AffMask
MEM_FromBind
MEM_Cleared
MEM_Term
MEM_Zero
MEM_Subtype
MEM_TypeMask
MEM_Dyn
MEM_Static
MEM_Ephem
MEM_Agg
VdbeMemDynamic(X)
MemSetTypeFlag(p, f)
MemNullNochng(X)
VDBE_INIT_STATE
VDBE_READY_STATE
VDBE_RUN_STATE
VDBE_HALT_STATE
swapMixedEndianFloat(X)
sqlite3VdbeIncrWriteCounter(V, C)
sqlite3VdbeAssertAbortable(V)
sqlite3VdbeLeave(X)
ExpandBlob(P)
wsdStatInit
wsdStat
INT_464269060799999
DO_OS_MALLOC_TEST(x)
vfsList
wsdHooksInit
wsdHooks
SQLITE_MALLOC(x)
SQLITE_FREE(x)
SQLITE_REALLOC(x, y)
SQLITE_MAX_MEMORY
mem0
test_oom_breakpoint(X)
SQLITE_MAX_ALLOCATION_SIZE
etRADIX
etFLOAT
etEXP
etGENERIC
etSIZE
etSTRING
etDYNSTRING
etPERCENT
etCHARX
etSQLESCAPE
etSQLESCAPE2
etTOKEN
etSRCITEM
etPOINTER
etSQLESCAPE3
etORDINAL
etDECIMAL
etINVALID
FLAG_SIGNED
FLAG_STRING
SQLITE_PRINT_BUF_SIZE
etBUFSIZE
SQLITE_FP_PRECISION_LIMIT
ROTL(a, b)
QR(a, b, c, d)
wsdPrng
WRITE_UTF8(zOut, c)
WRITE_UTF16LE(zOut, c)
WRITE_UTF16BE(zOut, c)
READ_UTF8(zIn, zTerm, c)
UpperToLower
SLOT_2_0
SLOT_4_2_0
OpHelp(X)
ORIGVFS(p)
BITVEC_SZ
BITVEC_USIZE
BITVEC_TELEM
BITVEC_SZELEM
BITVEC_NELEM
BITVEC_NBIT
BITVEC_NINT
BITVEC_MXHASH
BITVEC_HASH(X)
BITVEC_NPTR
SETBIT(V, I)
CLEARBIT(V, I)
TESTBIT(V, I)
pcacheTrace(X)
pcachePageTrace(PGNO, X)
pcacheDump(X)
pageOnDirtyList(A, B)
pageNotOnDirtyList(A, B)
PCACHE_DIRTYLIST_REMOVE
PCACHE_DIRTYLIST_ADD
PCACHE_DIRTYLIST_FRONT
N_SORT_BUCKET
PAGE_IS_PINNED(p)
PAGE_IS_UNPINNED(p)
pcache1
pcache1EnterMutex(X)
pcache1LeaveMutex(X)
PCACHE1_MIGHT_USE_GROUP_MUTEX
ROWSET_ALLOCATION_SIZE
ROWSET_ENTRY_PER_CHUNK
ROWSET_SORTED
ROWSET_NEXT
SQLITE_WAL_H
WAL_SYNC_FLAGS(X)
CKPT_SYNC_FLAGS(X)
sqlite3WalOpen(x, y, z)
sqlite3WalLimit(x, y)
sqlite3WalClose(v, w, x, y, z)
sqlite3WalBeginReadTransaction(y, z)
sqlite3WalEndReadTransaction(z)
sqlite3WalDbsize(y)
sqlite3WalBeginWriteTransaction(y)
sqlite3WalEndWriteTransaction(x)
sqlite3WalUndo(x, y, z)
sqlite3WalSavepoint(y, z)
sqlite3WalSavepointUndo(y, z)
sqlite3WalFrames(u, v, w, x, y, z)
sqlite3WalCheckpoint(q, r, s, t, u, v, w, x, y, z)
sqlite3WalCallback(z)
sqlite3WalExclusiveMode(y, z)
sqlite3WalHeapMemory(z)
sqlite3WalFramesize(z)
sqlite3WalFindFrame(x, y, z)
sqlite3WalFile(x)
PAGERTRACE(X)
PAGERID(p)
FILEHANDLEID(fd)
PAGER_OPEN
PAGER_READER
PAGER_WRITER_LOCKED
PAGER_WRITER_CACHEMOD
PAGER_WRITER_DBMOD
PAGER_WRITER_FINISHED
PAGER_ERROR
UNKNOWN_LOCK
MAX_SECTOR_SIZE
SPILLFLAG_OFF
SPILLFLAG_ROLLBACK
SPILLFLAG_NOSYNC
PAGER_STAT_HIT
PAGER_STAT_MISS
PAGER_STAT_WRITE
PAGER_STAT_SPILL
PAGER_INCR(v)
JOURNAL_PG_SZ(pPager)
JOURNAL_HDR_SZ(pPager)
MEMDB
USEFETCH(x)
isOpen(pFd)
pagerUseWal(x)
pagerRollbackWal(x)
pagerWalFrames(v, w, x, y)
pagerOpenWalIfPresent(z)
pagerBeginReadTransaction(z)
put32bits(A, B)
pager_datahash(X, Y)
pager_pagehash(X)
pager_set_pagehash(X)
CHECK_PAGE(x)
disable_simulated_io_errors()
enable_simulated_io_errors()
assertTruncateConstraint(pPager)
DIRECT_MODE
bBatch
MX_CELL_SIZE(pBt)
MX_CELL(pBt)
SQLITE_FILE_HEADER
PTF_INTKEY
PTF_ZERODATA
PTF_LEAFDATA
PTF_LEAF
READ_LOCK
WRITE_LOCK
TRANS_NONE
TRANS_READ
TRANS_WRITE
BTS_READ_ONLY
BTS_PAGESIZE_FIXED
BTS_SECURE_DELETE
BTS_OVERWRITE
BTS_FAST_SECURE
BTS_INITIALLY_EMPTY
BTS_NO_WAL
BTS_EXCLUSIVE
BTS_PENDING
BTCURSOR_MAX_DEPTH
BTCURSOR_FIRST_UNINIT
BTCF_WriteFlag
BTCF_ValidNKey
BTCF_ValidOvfl
BTCF_AtLast
BTCF_Incrblob
BTCF_Multiple
BTCF_Pinned
CURSOR_VALID
CURSOR_INVALID
CURSOR_SKIPNEXT
CURSOR_REQUIRESEEK
CURSOR_FAULT
PENDING_BYTE_PAGE(pBt)
PTRMAP_PAGENO(pBt, pgno)
PTRMAP_PTROFFSET(pgptrmap, pgno)
PTRMAP_ISPAGE(pBt, pgno)
PTRMAP_ROOTPAGE
PTRMAP_FREEPAGE
PTRMAP_OVERFLOW1
PTRMAP_OVERFLOW2
PTRMAP_BTREE
btreeIntegrity(p)
ISAUTOVACUUM(pBt)
get2byte(x)
put2byte(p, v)
get4byte
put4byte
get2byteAligned(x)
TRACE(X)
get2byteNotZero(X)
BTALLOC_ANY
BTALLOC_EXACT
BTALLOC_LE
IfNotOmitAV(expr)
SQLITE_CORRUPT_PAGE(pMemPage)
SHARED_LOCK_TRACE(X, MSG, TAB, TYPE)
invalidateOverflowCache(pCur)
restoreCursorPosition(p)
findCell(P, I)
findCellPastPtr(P, I)
setDefaultSyncFlag(pBt, safety_level)
assertCellInfo(x)
assertParentIndex(x, y, z)
BTREE_CLEAR_CELL(rc, pPage, pCell, sInfo)
NN
NB
ISPOWEROF2(X)
valueFromFunction(a, b, c, d, e, f)
checkActiveVdbeCnt(x)
vdbeInvokeSqllog(x)
ONE_BYTE_INT(x)
TWO_BYTE_INT(x)
THREE_BYTE_INT(x)
FOUR_BYTE_UINT(x)
FOUR_BYTE_INT(x)
vdbeAssertFieldCountWithinLimits(A, B, C)
checkProfileCallback(DB, P)
memAboutToChange(P, M)
HAS_UPDATE_HOOK(DB)
UPDATE_MAX_BLOBSIZE(P)
VdbeBranchTaken(I, M)
Deephemeralize(P)
isSorter(x)
REGISTER_TRACE(R, M)
MAX_ROWID
SQLITE_MAX_PMASZ
SORTER_TYPE_INTEGER
SORTER_TYPE_TEXT
SRVAL(p)
SORTER_MAX_MERGE_COUNT
nWorker
vdbeSorterWorkDebug(x, y)
vdbeSorterRewindDebug(y)
vdbeSorterPopulateDebug(x, y)
vdbeSorterBlockDebug(x, y, z)
vdbeSorterJoinAll(x, rcin)
vdbeSorterJoinThread(pTask)
vdbeSorterExtendFile(x, y, z)
INCRINIT_NORMAL
INCRINIT_TASK
INCRINIT_ROOT
MEMJOURNAL_DFLT_FILECHUNKSIZE
fileChunkSize(nChunkSize)
EXCLUDED_TABLE_NUMBER
sqlite3ResolveNotValid(P, N, M, X, E, R)
exprSetHeight(y)
renameTokenCheckAll(x, y)
IsStat4
SQLITE_STAT4_SAMPLES
STAT_GET_STAT1
STAT_GET_ROWID
STAT_GET_NEQ
STAT_GET_NLT
STAT_GET_NDLT
analyzeVdbeCommentIndexWithColumnName(a, b, c)
REOPEN_AS_MEMDB(db)
markExprListImmutable(X)
SQLITE_MAX_SRCLIST
FUNC_PERFECT_MATCH
noopFunc
Utf8Read(A)
SQLITE_MATCH
SQLITE_NOMATCH
SQLITE_NOWILDCARDMATCH
M_PI
M_LN10
M_LN2
COLUMN_MASK(x)
CKCNSTRNT_COLUMN
CKCNSTRNT_ROWID
codeWithoutRowidPreupdate(a, b, c, d)
SQLITE3EXT_H
SQLITE_EXTENSION_INIT1
SQLITE_EXTENSION_INIT2(v)
SQLITE_EXTENSION_INIT3
wsdAutoextInit
wsdAutoext
SQLITE_ENABLE_LOCKING_STYLE
PragTyp_ACTIVATE_EXTENSIONS
PragTyp_ANALYSIS_LIMIT
PragTyp_HEADER_VALUE
PragTyp_AUTO_VACUUM
PragTyp_FLAG
PragTyp_BUSY_TIMEOUT
PragTyp_CACHE_SIZE
PragTyp_CACHE_SPILL
PragTyp_CASE_SENSITIVE_LIKE
PragTyp_COLLATION_LIST
PragTyp_COMPILE_OPTIONS
PragTyp_DATA_STORE_DIRECTORY
PragTyp_DATABASE_LIST
PragTyp_DEFAULT_CACHE_SIZE
PragTyp_ENCODING
PragTyp_FOREIGN_KEY_CHECK
PragTyp_FOREIGN_KEY_LIST
PragTyp_FUNCTION_LIST
PragTyp_HARD_HEAP_LIMIT
PragTyp_INCREMENTAL_VACUUM
PragTyp_INDEX_INFO
PragTyp_INDEX_LIST
PragTyp_INTEGRITY_CHECK
PragTyp_JOURNAL_MODE
PragTyp_JOURNAL_SIZE_LIMIT
PragTyp_LOCK_PROXY_FILE
PragTyp_LOCKING_MODE
PragTyp_PAGE_COUNT
PragTyp_MMAP_SIZE
PragTyp_MODULE_LIST
PragTyp_OPTIMIZE
PragTyp_PAGE_SIZE
PragTyp_PRAGMA_LIST
PragTyp_SECURE_DELETE
PragTyp_SHRINK_MEMORY
PragTyp_SOFT_HEAP_LIMIT
PragTyp_SYNCHRONOUS
PragTyp_TABLE_INFO
PragTyp_TABLE_LIST
PragTyp_TEMP_STORE
PragTyp_TEMP_STORE_DIRECTORY
PragTyp_THREADS
PragTyp_WAL_AUTOCHECKPOINT
PragTyp_WAL_CHECKPOINT
PragTyp_LOCK_STATUS
PragTyp_STATS
PragFlg_NeedSchema
PragFlg_NoColumns
PragFlg_NoColumns1
PragFlg_ReadOnly
PragFlg_Result0
PragFlg_Result1
PragFlg_SchemaOpt
PragFlg_SchemaReq
SQLITE_DEFAULT_OPTIMIZE_LIMIT
SQLITE_INTEGRITY_CHECK_ERROR_MAX
SQLITE_MAX_PREPARE_RETRY
SORTFLAG_UseSorter
explainSetInteger(a, b)
columnType(A, B, C, D, E)
SQLITE_WHEREINT_H
WHERE_LOOP_XFER_SZ
N_OR_COST
TERM_DYNAMIC
TERM_VIRTUAL
TERM_CODED
TERM_COPIED
TERM_ORINFO
TERM_ANDINFO
TERM_OK
TERM_VNULL
TERM_LIKEOPT
TERM_LIKECOND
TERM_LIKE
TERM_IS
TERM_VARSELECT
TERM_HEURTRUTH
TERM_HIGHTRUTH
TERM_SLICE
SQLITE_BLDF1_INDEXED
SQLITE_BLDF1_UNIQUE
SQLITE_BLDF2_2NDPASS
SQLITE_QUERY_PLANNER_LIMIT
SQLITE_QUERY_PLANNER_LIMIT_INCR
sqlite3WhereAddScanStatus(a, b, c, d)
WO_IN
WO_EQ
WO_LT
WO_LE
WO_GT
WO_GE
WO_AUX
WO_IS
WO_ISNULL
WO_OR
WO_AND
WO_EQUIV
WO_NOOP
WO_ROWVAL
WO_ALL
WO_SINGLE
WHERE_COLUMN_EQ
WHERE_COLUMN_RANGE
WHERE_COLUMN_IN
WHERE_COLUMN_NULL
WHERE_CONSTRAINT
WHERE_TOP_LIMIT
WHERE_BTM_LIMIT
WHERE_BOTH_LIMIT
WHERE_IDX_ONLY
WHERE_IPK
WHERE_INDEXED
WHERE_VIRTUALTABLE
WHERE_IN_ABLE
WHERE_ONEROW
WHERE_MULTI_OR
WHERE_AUTO_INDEX
WHERE_SKIPSCAN
WHERE_UNQ_WANTED
WHERE_PARTIALIDX
WHERE_IN_EARLYOUT
WHERE_BIGNULL_SORT
WHERE_IN_SEEKSCAN
WHERE_TRANSCONS
WHERE_BLOOMFILTER
WHERE_SELFCULL
WHERE_OMIT_OFFSET
WHERE_EXPRIDX
whereLikeOptimizationStringFixup(A, B, C)
codeCursorHint(A, B, C, D)
whereTraceIndexInfoInputs(A, B)
whereTraceIndexInfoOutputs(A, B)
explainAutomaticIndex(a, b, c, d)
ApplyCostMultiplier(C, T)
WHERETRACE_ALL_LOOPS(W, C)
OpcodeRewriteTrace(D, K, P)
nth_valueInvFunc
nth_valueValueFunc
first_valueInvFunc
first_valueValueFunc
percent_rankFinalizeFunc
cume_distFinalizeFunc
ntileFinalizeFunc
WINDOWFUNCALL(name, nArg, extra)
WINDOWFUNCNOOP(name, nArg, extra)
WINDOWFUNCX(name, nArg, extra)
WINDOW_STARTING_INT
WINDOW_ENDING_INT
WINDOW_NTH_VALUE_INT
WINDOW_STARTING_NUM
WINDOW_ENDING_NUM
WINDOW_RETURN_ROW
WINDOW_AGGINVERSE
WINDOW_AGGSTEP
YYNOERRORRECOVERY
yytestcase(X)
YYPARSEFREENEVERNULL
sqlite3Parser_ENGINEALWAYSONSTACK
YYMALLOCARGTYPE
INTERFACE
YYCODETYPE
YYNOCODE
YYACTIONTYPE
YYWILDCARD
sqlite3ParserTOKENTYPE
sqlite3ParserARG_SDECL
sqlite3ParserARG_PDECL
sqlite3ParserARG_PARAM
sqlite3ParserARG_FETCH
sqlite3ParserARG_STORE
YYREALLOC
YYFREE
YYDYNSTACK
sqlite3ParserCTX_SDECL
sqlite3ParserCTX_PDECL
sqlite3ParserCTX_PARAM
sqlite3ParserCTX_FETCH
sqlite3ParserCTX_STORE
YYFALLBACK
YYNSTATE
YYNRULE
YYNRULE_WITH_ACTION
YYNTOKEN
YY_MAX_SHIFT
YY_MIN_SHIFTREDUCE
YY_MAX_SHIFTREDUCE
YY_ERROR_ACTION
YY_ACCEPT_ACTION
YY_NO_ACTION
YY_MIN_REDUCE
YY_MAX_REDUCE
YY_MIN_DSTRCTR
YY_MAX_DSTRCTR
YY_NLOOKAHEAD
YYGROWABLESTACK
YY_ACTTAB_COUNT
YY_SHIFT_COUNT
YY_SHIFT_MIN
YY_SHIFT_MAX
YY_REDUCE_COUNT
YY_REDUCE_MIN
YY_REDUCE_MAX
yyTraceShift(X, Y, Z)
TOKEN
CC_X
CC_KYWD0
CC_KYWD
CC_DIGIT
CC_DOLLAR
CC_VARALPHA
CC_VARNUM
CC_SPACE
CC_QUOTE
CC_QUOTE2
CC_PIPE
CC_MINUS
CC_LT
CC_GT
CC_EQ
CC_BANG
CC_SLASH
CC_LP
CC_RP
CC_SEMI
CC_PLUS
CC_STAR
CC_PERCENT
CC_COMMA
CC_AND
CC_TILDA
CC_DOT
CC_ID
CC_ILLEGAL
CC_NUL
CC_BOM
charMap(X)
SQLITE_N_KEYWORD
IdChar(C)
tkSEMI
tkWS
tkOTHER
tkEXPLAIN
tkCREATE
tkTEMP
tkTRIGGER
tkEND
NDELAY
_FTSINT_H
JSONB_NULL
JSONB_TRUE
JSONB_FALSE
JSONB_INT
JSONB_INT5
JSONB_FLOAT
JSONB_FLOAT5
JSONB_TEXT
JSONB_TEXTJ
JSONB_TEXT5
JSONB_TEXTRAW
JSONB_ARRAY
JSONB_OBJECT
jsonIsspace(x)
JSON_CACHE_ID
JSON_CACHE_SIZE
JSON_INVALID_CHAR
JSTRING_OOM
JSTRING_MALFORMED
JSTRING_ERR
JSON_SUBTYPE
JSON_JSON
JSON_SQL
JSON_ABPATH
JSON_ISSET
JSON_BLOB
JEDIT_DEL
JEDIT_REPL
JEDIT_INS
JEDIT_SET
JSON_MAX_DEPTH
JSON_EDITABLE
JSON_KEEPERROR
JSON_LOOKUP_ERROR
JSON_LOOKUP_NOTFOUND
JSON_LOOKUP_PATHERROR
JSON_LOOKUP_ISERROR(x)
JSON_MERGE_OK
JSON_MERGE_BADTARGET
JSON_MERGE_BADPATCH
JSON_MERGE_OOM
JEACH_KEY
JEACH_VALUE
JEACH_TYPE
JEACH_ATOM
JEACH_ID
JEACH_PARENT
JEACH_FULLKEY
JEACH_PATH
JEACH_JSON
JEACH_ROOT

Typedefs

typedef struct sqlite3 sqlite3
typedef long long int sqlite_int64
typedef unsigned long long int sqlite_uint64
typedef sqlite_int64 sqlite3_int64
typedef sqlite_uint64 sqlite3_uint64
typedef int (*sqlite3_callback)(void*, int, char**, char**)
typedef struct sqlite3_file sqlite3_file
typedef struct sqlite3_io_methods sqlite3_io_methods
typedef struct sqlite3_mutex sqlite3_mutex
typedef struct sqlite3_api_routines sqlite3_api_routines
typedef const char *sqlite3_filename
typedef struct sqlite3_vfs sqlite3_vfs
typedef void (*sqlite3_syscall_ptr)(void)
typedef struct sqlite3_mem_methods sqlite3_mem_methods
typedef struct sqlite3_stmt sqlite3_stmt
typedef struct sqlite3_value sqlite3_value
typedef struct sqlite3_context sqlite3_context
typedef void (*sqlite3_destructor_type)(void*)
typedef struct sqlite3_vtab sqlite3_vtab
typedef struct sqlite3_index_info sqlite3_index_info
typedef struct sqlite3_vtab_cursor sqlite3_vtab_cursor
typedef struct sqlite3_module sqlite3_module
typedef struct sqlite3_blob sqlite3_blob
typedef struct sqlite3_mutex_methods sqlite3_mutex_methods
typedef struct sqlite3_str sqlite3_str
typedef struct sqlite3_pcache sqlite3_pcache
typedef struct sqlite3_pcache_page sqlite3_pcache_page
typedef struct sqlite3_pcache_methods2 sqlite3_pcache_methods2
typedef struct sqlite3_pcache_methods sqlite3_pcache_methods
typedef struct sqlite3_backup sqlite3_backup
typedef struct sqlite3_snapshot sqlite3_snapshot
typedef struct sqlite3_rtree_geometry sqlite3_rtree_geometry
typedef struct sqlite3_rtree_query_info sqlite3_rtree_query_info
typedef double sqlite3_rtree_dbl
typedef struct Fts5ExtensionApi Fts5ExtensionApi
typedef struct Fts5Context Fts5Context
typedef struct Fts5PhraseIter Fts5PhraseIter
typedef void (*fts5_extension_function)(const Fts5ExtensionApi *pApi, Fts5Context *pFts, sqlite3_context *pCtx, int nVal, sqlite3_value **apVal)
typedef struct Fts5Tokenizer Fts5Tokenizer
typedef struct fts5_tokenizer fts5_tokenizer
typedef struct fts5_api fts5_api
typedef struct Hash Hash
typedef struct HashElem HashElem
typedef sqlite_int64 i64
typedef sqlite_uint64 u64
typedef UINT32_TYPE u32
typedef UINT16_TYPE u16
typedef INT16_TYPE i16
typedef UINT8_TYPE u8
typedef INT8_TYPE i8
typedef u64 tRowcnt
typedef INT16_TYPE LogEst
typedef u64 uptr
typedef struct BusyHandler BusyHandler
typedef struct AggInfo AggInfo
typedef struct AuthContext AuthContext
typedef struct AutoincInfo AutoincInfo
typedef struct Bitvec Bitvec
typedef struct CollSeq CollSeq
typedef struct Column Column
typedef struct Cte Cte
typedef struct CteUse CteUse
typedef struct Db Db
typedef struct DbClientData DbClientData
typedef struct DbFixer DbFixer
typedef struct Schema Schema
typedef struct Expr Expr
typedef struct ExprList ExprList
typedef struct FKey FKey
typedef struct FpDecode FpDecode
typedef struct FuncDestructor FuncDestructor
typedef struct FuncDef FuncDef
typedef struct FuncDefHash FuncDefHash
typedef struct IdList IdList
typedef struct Index Index
typedef struct IndexedExpr IndexedExpr
typedef struct IndexSample IndexSample
typedef struct KeyClass KeyClass
typedef struct KeyInfo KeyInfo
typedef struct Lookaside Lookaside
typedef struct LookasideSlot LookasideSlot
typedef struct Module Module
typedef struct NameContext NameContext
typedef struct OnOrUsing OnOrUsing
typedef struct Parse Parse
typedef struct ParseCleanup ParseCleanup
typedef struct PreUpdate PreUpdate
typedef struct PrintfArguments PrintfArguments
typedef struct RCStr RCStr
typedef struct RenameToken RenameToken
typedef struct Returning Returning
typedef struct RowSet RowSet
typedef struct Savepoint Savepoint
typedef struct Select Select
typedef struct SQLiteThread SQLiteThread
typedef struct SelectDest SelectDest
typedef struct SrcItem SrcItem
typedef struct SrcList SrcList
typedef struct sqlite3_str StrAccum
typedef struct Table Table
typedef struct TableLock TableLock
typedef struct Token Token
typedef struct TreeView TreeView
typedef struct Trigger Trigger
typedef struct TriggerPrg TriggerPrg
typedef struct TriggerStep TriggerStep
typedef struct UnpackedRecord UnpackedRecord
typedef struct Upsert Upsert
typedef struct VTable VTable
typedef struct VtabCtx VtabCtx
typedef struct Walker Walker
typedef struct WhereInfo WhereInfo
typedef struct Window Window
typedef struct With With
typedef u64 Bitmask
typedef int VList
typedef u32 Pgno
typedef struct Pager Pager
typedef struct PgHdr DbPage
typedef struct Btree Btree
typedef struct BtCursor BtCursor
typedef struct BtShared BtShared
typedef struct BtreePayload BtreePayload
typedef struct Vdbe Vdbe
typedef struct sqlite3_value Mem
typedef struct SubProgram SubProgram
typedef struct VdbeOp VdbeOp
typedef struct VdbeOpList VdbeOpList
typedef int (*RecordCompare)(int, const void*, UnpackedRecord*)
typedef struct PgHdr PgHdr
typedef struct PCache PCache
typedef int (*sqlite3_xauth)(void*, int, const char*, const char*, const char*, const char*)
typedef i16 ynVar
typedef unsigned int yDbMask
typedef struct VdbeOp Op
typedef unsigned Bool
typedef struct VdbeSorter VdbeSorter
typedef struct AuxData AuxData
typedef struct VdbeTxtBlbCache VdbeTxtBlbCache
typedef struct VdbeCursor VdbeCursor
typedef struct VdbeFrame VdbeFrame
typedef unsigned bft
typedef struct ScanStatus ScanStatus
typedef struct DblquoteStr DblquoteStr
typedef struct ValueList ValueList
typedef sqlite3_int64 sqlite3StatValueType
typedef struct sqlite3StatType sqlite3StatType
typedef struct DateTime DateTime
typedef struct BenignMallocHooks BenignMallocHooks
typedef unsigned char etByte
typedef struct et_info et_info
typedef struct sqlite3_vfs MemVfs
typedef struct MemFile MemFile
typedef struct MemStore MemStore
typedef struct PCache1 PCache1
typedef struct PgHdr1 PgHdr1
typedef struct PgFreeslot PgFreeslot
typedef struct PGroup PGroup
typedef struct PagerSavepoint PagerSavepoint
typedef struct MemPage MemPage
typedef struct BtLock BtLock
typedef struct CellInfo CellInfo
typedef struct IntegrityCk IntegrityCk
typedef struct CellArray CellArray
typedef struct Incrblob Incrblob
typedef struct MergeEngine MergeEngine
typedef struct PmaReader PmaReader
typedef struct PmaWriter PmaWriter
typedef struct SorterRecord SorterRecord
typedef struct SortSubtask SortSubtask
typedef struct SorterFile SorterFile
typedef struct SorterList SorterList
typedef struct IncrMerger IncrMerger
typedef int (*SorterCompare)(SortSubtask*, int*, const void*, int, const void*, int)
typedef struct MemJournal MemJournal
typedef struct FilePoint FilePoint
typedef struct FileChunk FileChunk
typedef struct EdupBuf EdupBuf
typedef struct RenameCtx RenameCtx
typedef struct StatAccum StatAccum
typedef struct StatSample StatSample
typedef struct analysisInfo analysisInfo
typedef struct SumCtx SumCtx
typedef struct CountCtx CountCtx
typedef struct IndexListTerm IndexListTerm
typedef struct IndexIterator IndexIterator
typedef int (*sqlite3_loadext_entry)(sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pThunk)
typedef struct sqlite3AutoExtList sqlite3AutoExtList
typedef struct PragmaName PragmaName
typedef struct PragmaVtab PragmaVtab
typedef struct PragmaVtabCursor PragmaVtabCursor
typedef struct DistinctCtx DistinctCtx
typedef struct SortCtx SortCtx
typedef struct RowLoadInfo RowLoadInfo
typedef struct SubstContext SubstContext
typedef struct WhereConst WhereConst
typedef struct TabResult TabResult
typedef struct WhereClause WhereClause
typedef struct WhereMaskSet WhereMaskSet
typedef struct WhereOrInfo WhereOrInfo
typedef struct WhereAndInfo WhereAndInfo
typedef struct WhereLevel WhereLevel
typedef struct WhereLoop WhereLoop
typedef struct WherePath WherePath
typedef struct WhereTerm WhereTerm
typedef struct WhereLoopBuilder WhereLoopBuilder
typedef struct WhereScan WhereScan
typedef struct WhereOrCost WhereOrCost
typedef struct WhereOrSet WhereOrSet
typedef struct WhereMemBlock WhereMemBlock
typedef struct WhereRightJoin WhereRightJoin
typedef struct HiddenIndexInfo HiddenIndexInfo
typedef struct CoveringIndexCheck CoveringIndexCheck
typedef struct WindowRewrite WindowRewrite
typedef struct WindowCodeArg WindowCodeArg
typedef struct WindowCsrAndReg WindowCsrAndReg
typedef struct yyStackEntry yyStackEntry
typedef struct yyParser yyParser
typedef struct JsonCache JsonCache
typedef struct JsonString JsonString
typedef struct JsonParse JsonParse
typedef struct JsonPretty JsonPretty
typedef struct JsonParent JsonParent
typedef struct JsonEachCursor JsonEachCursor
typedef struct JsonEachConnection JsonEachConnection

Functions

SQLITE_API const char * sqlite3_libversion (void)
SQLITE_API const char * sqlite3_sourceid (void)
SQLITE_API int sqlite3_libversion_number (void)
SQLITE_API int sqlite3_compileoption_used (const char *zOptName)
SQLITE_API const char * sqlite3_compileoption_get (int N)
SQLITE_API int sqlite3_threadsafe (void)
SQLITE_API int sqlite3_close (sqlite3 *)
SQLITE_API int sqlite3_close_v2 (sqlite3 *)
SQLITE_API int sqlite3_exec (sqlite3 *, const char *sql, int(*callback)(void *, int, char **, char **), void *, char **errmsg)
SQLITE_API int sqlite3_initialize (void)
SQLITE_API int sqlite3_shutdown (void)
SQLITE_API int sqlite3_os_init (void)
SQLITE_API int sqlite3_os_end (void)
SQLITE_API int sqlite3_config (int,...)
SQLITE_API int sqlite3_db_config (sqlite3 *, int op,...)
SQLITE_API int sqlite3_extended_result_codes (sqlite3 *, int onoff)
SQLITE_API sqlite3_int64 sqlite3_last_insert_rowid (sqlite3 *)
SQLITE_API void sqlite3_set_last_insert_rowid (sqlite3 *, sqlite3_int64)
SQLITE_API int sqlite3_changes (sqlite3 *)
SQLITE_API sqlite3_int64 sqlite3_changes64 (sqlite3 *)
SQLITE_API int sqlite3_total_changes (sqlite3 *)
SQLITE_API sqlite3_int64 sqlite3_total_changes64 (sqlite3 *)
SQLITE_API void sqlite3_interrupt (sqlite3 *)
SQLITE_API int sqlite3_is_interrupted (sqlite3 *)
SQLITE_API int sqlite3_complete (const char *sql)
SQLITE_API int sqlite3_complete16 (const void *sql)
SQLITE_API int sqlite3_busy_handler (sqlite3 *, int(*)(void *, int), void *)
SQLITE_API int sqlite3_busy_timeout (sqlite3 *, int ms)
SQLITE_API int sqlite3_get_table (sqlite3 *db, const char *zSql, char ***pazResult, int *pnRow, int *pnColumn, char **pzErrmsg)
SQLITE_API void sqlite3_free_table (char **result)
SQLITE_API char * sqlite3_mprintf (const char *,...)
SQLITE_API char * sqlite3_vmprintf (const char *, va_list)
SQLITE_API char * sqlite3_snprintf (int, char *, const char *,...)
SQLITE_API char * sqlite3_vsnprintf (int, char *, const char *, va_list)
SQLITE_API void * sqlite3_malloc (int)
SQLITE_API void * sqlite3_malloc64 (sqlite3_uint64)
SQLITE_API void * sqlite3_realloc (void *, int)
SQLITE_API void * sqlite3_realloc64 (void *, sqlite3_uint64)
SQLITE_API void sqlite3_free (void *)
SQLITE_API sqlite3_uint64 sqlite3_msize (void *)
SQLITE_API sqlite3_int64 sqlite3_memory_used (void)
SQLITE_API sqlite3_int64 sqlite3_memory_highwater (int resetFlag)
SQLITE_API void sqlite3_randomness (int N, void *P)
SQLITE_API int sqlite3_set_authorizer (sqlite3 *, int(*xAuth)(void *, int, const char *, const char *, const char *, const char *), void *pUserData)
SQLITE_API SQLITE_DEPRECATED void * sqlite3_trace (sqlite3 *, void(*xTrace)(void *, const char *), void *)
SQLITE_API SQLITE_DEPRECATED void * sqlite3_profile (sqlite3 *, void(*xProfile)(void *, const char *, sqlite3_uint64), void *)
SQLITE_API int sqlite3_trace_v2 (sqlite3 *, unsigned uMask, int(*xCallback)(unsigned, void *, void *, void *), void *pCtx)
SQLITE_API void sqlite3_progress_handler (sqlite3 *, int, int(*)(void *), void *)
SQLITE_API int sqlite3_open (const char *filename, sqlite3 **ppDb)
SQLITE_API int sqlite3_open16 (const void *filename, sqlite3 **ppDb)
SQLITE_API int sqlite3_open_v2 (const char *filename, sqlite3 **ppDb, int flags, const char *zVfs)
SQLITE_API const char * sqlite3_uri_parameter (sqlite3_filename z, const char *zParam)
SQLITE_API int sqlite3_uri_boolean (sqlite3_filename z, const char *zParam, int bDefault)
SQLITE_API sqlite3_int64 sqlite3_uri_int64 (sqlite3_filename, const char *, sqlite3_int64)
SQLITE_API const char * sqlite3_uri_key (sqlite3_filename z, int N)
SQLITE_API const char * sqlite3_filename_database (sqlite3_filename)
SQLITE_API const char * sqlite3_filename_journal (sqlite3_filename)
SQLITE_API const char * sqlite3_filename_wal (sqlite3_filename)
SQLITE_API sqlite3_file * sqlite3_database_file_object (const char *)
SQLITE_API sqlite3_filename sqlite3_create_filename (const char *zDatabase, const char *zJournal, const char *zWal, int nParam, const char **azParam)
SQLITE_API void sqlite3_free_filename (sqlite3_filename)
SQLITE_API int sqlite3_errcode (sqlite3 *db)
SQLITE_API int sqlite3_extended_errcode (sqlite3 *db)
SQLITE_API const char * sqlite3_errmsg (sqlite3 *)
SQLITE_API const void * sqlite3_errmsg16 (sqlite3 *)
SQLITE_API const char * sqlite3_errstr (int)
SQLITE_API int sqlite3_error_offset (sqlite3 *db)
SQLITE_API int sqlite3_limit (sqlite3 *, int id, int newVal)
SQLITE_API int sqlite3_prepare (sqlite3 *db, const char *zSql, int nByte, sqlite3_stmt **ppStmt, const char **pzTail)
SQLITE_API int sqlite3_prepare_v2 (sqlite3 *db, const char *zSql, int nByte, sqlite3_stmt **ppStmt, const char **pzTail)
SQLITE_API int sqlite3_prepare_v3 (sqlite3 *db, const char *zSql, int nByte, unsigned int prepFlags, sqlite3_stmt **ppStmt, const char **pzTail)
SQLITE_API int sqlite3_prepare16 (sqlite3 *db, const void *zSql, int nByte, sqlite3_stmt **ppStmt, const void **pzTail)
SQLITE_API int sqlite3_prepare16_v2 (sqlite3 *db, const void *zSql, int nByte, sqlite3_stmt **ppStmt, const void **pzTail)
SQLITE_API int sqlite3_prepare16_v3 (sqlite3 *db, const void *zSql, int nByte, unsigned int prepFlags, sqlite3_stmt **ppStmt, const void **pzTail)
SQLITE_API const char * sqlite3_sql (sqlite3_stmt *pStmt)
SQLITE_API char * sqlite3_expanded_sql (sqlite3_stmt *pStmt)
SQLITE_API int sqlite3_stmt_readonly (sqlite3_stmt *pStmt)
SQLITE_API int sqlite3_stmt_isexplain (sqlite3_stmt *pStmt)
SQLITE_API int sqlite3_stmt_explain (sqlite3_stmt *pStmt, int eMode)
SQLITE_API int sqlite3_stmt_busy (sqlite3_stmt *)
SQLITE_API int sqlite3_bind_blob (sqlite3_stmt *, int, const void *, int n, void(*)(void *))
SQLITE_API int sqlite3_bind_blob64 (sqlite3_stmt *, int, const void *, sqlite3_uint64, void(*)(void *))
SQLITE_API int sqlite3_bind_double (sqlite3_stmt *, int, double)
SQLITE_API int sqlite3_bind_int (sqlite3_stmt *, int, int)
SQLITE_API int sqlite3_bind_int64 (sqlite3_stmt *, int, sqlite3_int64)
SQLITE_API int sqlite3_bind_null (sqlite3_stmt *, int)
SQLITE_API int sqlite3_bind_text (sqlite3_stmt *, int, const char *, int, void(*)(void *))
SQLITE_API int sqlite3_bind_text16 (sqlite3_stmt *, int, const void *, int, void(*)(void *))
SQLITE_API int sqlite3_bind_text64 (sqlite3_stmt *, int, const char *, sqlite3_uint64, void(*)(void *), unsigned char encoding)
SQLITE_API int sqlite3_bind_value (sqlite3_stmt *, int, const sqlite3_value *)
SQLITE_API int sqlite3_bind_pointer (sqlite3_stmt *, int, void *, const char *, void(*)(void *))
SQLITE_API int sqlite3_bind_zeroblob (sqlite3_stmt *, int, int n)
SQLITE_API int sqlite3_bind_zeroblob64 (sqlite3_stmt *, int, sqlite3_uint64)
SQLITE_API int sqlite3_bind_parameter_count (sqlite3_stmt *)
SQLITE_API const char * sqlite3_bind_parameter_name (sqlite3_stmt *, int)
SQLITE_API int sqlite3_bind_parameter_index (sqlite3_stmt *, const char *zName)
SQLITE_API int sqlite3_clear_bindings (sqlite3_stmt *)
SQLITE_API int sqlite3_column_count (sqlite3_stmt *pStmt)
SQLITE_API const char * sqlite3_column_name (sqlite3_stmt *, int N)
SQLITE_API const void * sqlite3_column_name16 (sqlite3_stmt *, int N)
SQLITE_API const char * sqlite3_column_database_name (sqlite3_stmt *, int)
SQLITE_API const void * sqlite3_column_database_name16 (sqlite3_stmt *, int)
SQLITE_API const char * sqlite3_column_table_name (sqlite3_stmt *, int)
SQLITE_API const void * sqlite3_column_table_name16 (sqlite3_stmt *, int)
SQLITE_API const char * sqlite3_column_origin_name (sqlite3_stmt *, int)
SQLITE_API const void * sqlite3_column_origin_name16 (sqlite3_stmt *, int)
SQLITE_API const char * sqlite3_column_decltype (sqlite3_stmt *, int)
SQLITE_API const void * sqlite3_column_decltype16 (sqlite3_stmt *, int)
SQLITE_API int sqlite3_step (sqlite3_stmt *)
SQLITE_API int sqlite3_data_count (sqlite3_stmt *pStmt)
SQLITE_API const void * sqlite3_column_blob (sqlite3_stmt *, int iCol)
SQLITE_API double sqlite3_column_double (sqlite3_stmt *, int iCol)
SQLITE_API int sqlite3_column_int (sqlite3_stmt *, int iCol)
SQLITE_API sqlite3_int64 sqlite3_column_int64 (sqlite3_stmt *, int iCol)
SQLITE_API const unsigned char * sqlite3_column_text (sqlite3_stmt *, int iCol)
SQLITE_API const void * sqlite3_column_text16 (sqlite3_stmt *, int iCol)
SQLITE_API sqlite3_value * sqlite3_column_value (sqlite3_stmt *, int iCol)
SQLITE_API int sqlite3_column_bytes (sqlite3_stmt *, int iCol)
SQLITE_API int sqlite3_column_bytes16 (sqlite3_stmt *, int iCol)
SQLITE_API int sqlite3_column_type (sqlite3_stmt *, int iCol)
SQLITE_API int sqlite3_finalize (sqlite3_stmt *pStmt)
SQLITE_API int sqlite3_reset (sqlite3_stmt *pStmt)
SQLITE_API int sqlite3_create_function (sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xFunc)(sqlite3_context *, int, sqlite3_value **), void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *))
SQLITE_API int sqlite3_create_function16 (sqlite3 *db, const void *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xFunc)(sqlite3_context *, int, sqlite3_value **), void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *))
SQLITE_API int sqlite3_create_function_v2 (sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xFunc)(sqlite3_context *, int, sqlite3_value **), void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *), void(*xDestroy)(void *))
SQLITE_API int sqlite3_create_window_function (sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *), void(*xValue)(sqlite3_context *), void(*xInverse)(sqlite3_context *, int, sqlite3_value **), void(*xDestroy)(void *))
SQLITE_API SQLITE_DEPRECATED int sqlite3_aggregate_count (sqlite3_context *)
SQLITE_API SQLITE_DEPRECATED int sqlite3_expired (sqlite3_stmt *)
SQLITE_API SQLITE_DEPRECATED int sqlite3_transfer_bindings (sqlite3_stmt *, sqlite3_stmt *)
SQLITE_API SQLITE_DEPRECATED int sqlite3_global_recover (void)
SQLITE_API SQLITE_DEPRECATED void sqlite3_thread_cleanup (void)
SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm (void(*)(void *, sqlite3_int64, int), void *, sqlite3_int64)
SQLITE_API const void * sqlite3_value_blob (sqlite3_value *)
SQLITE_API double sqlite3_value_double (sqlite3_value *)
SQLITE_API int sqlite3_value_int (sqlite3_value *)
SQLITE_API sqlite3_int64 sqlite3_value_int64 (sqlite3_value *)
SQLITE_API void * sqlite3_value_pointer (sqlite3_value *, const char *)
SQLITE_API const unsigned char * sqlite3_value_text (sqlite3_value *)
SQLITE_API const void * sqlite3_value_text16 (sqlite3_value *)
SQLITE_API const void * sqlite3_value_text16le (sqlite3_value *)
SQLITE_API const void * sqlite3_value_text16be (sqlite3_value *)
SQLITE_API int sqlite3_value_bytes (sqlite3_value *)
SQLITE_API int sqlite3_value_bytes16 (sqlite3_value *)
SQLITE_API int sqlite3_value_type (sqlite3_value *)
SQLITE_API int sqlite3_value_numeric_type (sqlite3_value *)
SQLITE_API int sqlite3_value_nochange (sqlite3_value *)
SQLITE_API int sqlite3_value_frombind (sqlite3_value *)
SQLITE_API int sqlite3_value_encoding (sqlite3_value *)
SQLITE_API unsigned int sqlite3_value_subtype (sqlite3_value *)
SQLITE_API sqlite3_value * sqlite3_value_dup (const sqlite3_value *)
SQLITE_API void sqlite3_value_free (sqlite3_value *)
SQLITE_API void * sqlite3_aggregate_context (sqlite3_context *, int nBytes)
SQLITE_API void * sqlite3_user_data (sqlite3_context *)
SQLITE_API sqlite3 * sqlite3_context_db_handle (sqlite3_context *)
SQLITE_API void * sqlite3_get_auxdata (sqlite3_context *, int N)
SQLITE_API void sqlite3_set_auxdata (sqlite3_context *, int N, void *, void(*)(void *))
SQLITE_API void * sqlite3_get_clientdata (sqlite3 *, const char *)
SQLITE_API int sqlite3_set_clientdata (sqlite3 *, const char *, void *, void(*)(void *))
SQLITE_API void sqlite3_result_blob (sqlite3_context *, const void *, int, void(*)(void *))
SQLITE_API void sqlite3_result_blob64 (sqlite3_context *, const void *, sqlite3_uint64, void(*)(void *))
SQLITE_API void sqlite3_result_double (sqlite3_context *, double)
SQLITE_API void sqlite3_result_error (sqlite3_context *, const char *, int)
SQLITE_API void sqlite3_result_error16 (sqlite3_context *, const void *, int)
SQLITE_API void sqlite3_result_error_toobig (sqlite3_context *)
SQLITE_API void sqlite3_result_error_nomem (sqlite3_context *)
SQLITE_API void sqlite3_result_error_code (sqlite3_context *, int)
SQLITE_API void sqlite3_result_int (sqlite3_context *, int)
SQLITE_API void sqlite3_result_int64 (sqlite3_context *, sqlite3_int64)
SQLITE_API void sqlite3_result_null (sqlite3_context *)
SQLITE_API void sqlite3_result_text (sqlite3_context *, const char *, int, void(*)(void *))
SQLITE_API void sqlite3_result_text64 (sqlite3_context *, const char *, sqlite3_uint64, void(*)(void *), unsigned char encoding)
SQLITE_API void sqlite3_result_text16 (sqlite3_context *, const void *, int, void(*)(void *))
SQLITE_API void sqlite3_result_text16le (sqlite3_context *, const void *, int, void(*)(void *))
SQLITE_API void sqlite3_result_text16be (sqlite3_context *, const void *, int, void(*)(void *))
SQLITE_API void sqlite3_result_value (sqlite3_context *, sqlite3_value *)
SQLITE_API void sqlite3_result_pointer (sqlite3_context *, void *, const char *, void(*)(void *))
SQLITE_API void sqlite3_result_zeroblob (sqlite3_context *, int n)
SQLITE_API int sqlite3_result_zeroblob64 (sqlite3_context *, sqlite3_uint64 n)
SQLITE_API void sqlite3_result_subtype (sqlite3_context *, unsigned int)
SQLITE_API int sqlite3_create_collation (sqlite3 *, const char *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *))
SQLITE_API int sqlite3_create_collation_v2 (sqlite3 *, const char *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *), void(*xDestroy)(void *))
SQLITE_API int sqlite3_create_collation16 (sqlite3 *, const void *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *))
SQLITE_API int sqlite3_collation_needed (sqlite3 *, void *, void(*)(void *, sqlite3 *, int eTextRep, const char *))
SQLITE_API int sqlite3_collation_needed16 (sqlite3 *, void *, void(*)(void *, sqlite3 *, int eTextRep, const void *))
SQLITE_API int sqlite3_sleep (int)
SQLITE_API int sqlite3_win32_set_directory (unsigned long type, void *zValue)
SQLITE_API int sqlite3_win32_set_directory8 (unsigned long type, const char *zValue)
SQLITE_API int sqlite3_win32_set_directory16 (unsigned long type, const void *zValue)
SQLITE_API int sqlite3_get_autocommit (sqlite3 *)
SQLITE_API sqlite3 * sqlite3_db_handle (sqlite3_stmt *)
SQLITE_API const char * sqlite3_db_name (sqlite3 *db, int N)
SQLITE_API sqlite3_filename sqlite3_db_filename (sqlite3 *db, const char *zDbName)
SQLITE_API int sqlite3_db_readonly (sqlite3 *db, const char *zDbName)
SQLITE_API int sqlite3_txn_state (sqlite3 *, const char *zSchema)
SQLITE_API sqlite3_stmt * sqlite3_next_stmt (sqlite3 *pDb, sqlite3_stmt *pStmt)
SQLITE_API void * sqlite3_commit_hook (sqlite3 *, int(*)(void *), void *)
SQLITE_API void * sqlite3_rollback_hook (sqlite3 *, void(*)(void *), void *)
SQLITE_API int sqlite3_autovacuum_pages (sqlite3 *db, unsigned int(*)(void *, const char *, unsigned int, unsigned int, unsigned int), void *, void(*)(void *))
SQLITE_API void * sqlite3_update_hook (sqlite3 *, void(*)(void *, int, char const *, char const *, sqlite3_int64), void *)
SQLITE_API int sqlite3_enable_shared_cache (int)
SQLITE_API int sqlite3_release_memory (int)
SQLITE_API int sqlite3_db_release_memory (sqlite3 *)
SQLITE_API sqlite3_int64 sqlite3_soft_heap_limit64 (sqlite3_int64 N)
SQLITE_API sqlite3_int64 sqlite3_hard_heap_limit64 (sqlite3_int64 N)
SQLITE_API SQLITE_DEPRECATED void sqlite3_soft_heap_limit (int N)
SQLITE_API int sqlite3_table_column_metadata (sqlite3 *db, const char *zDbName, const char *zTableName, const char *zColumnName, char const **pzDataType, char const **pzCollSeq, int *pNotNull, int *pPrimaryKey, int *pAutoinc)
SQLITE_API int sqlite3_load_extension (sqlite3 *db, const char *zFile, const char *zProc, char **pzErrMsg)
SQLITE_API int sqlite3_enable_load_extension (sqlite3 *db, int onoff)
SQLITE_API int sqlite3_auto_extension (void(*xEntryPoint)(void))
SQLITE_API int sqlite3_cancel_auto_extension (void(*xEntryPoint)(void))
SQLITE_API void sqlite3_reset_auto_extension (void)
SQLITE_API int sqlite3_create_module (sqlite3 *db, const char *zName, const sqlite3_module *p, void *pClientData)
SQLITE_API int sqlite3_create_module_v2 (sqlite3 *db, const char *zName, const sqlite3_module *p, void *pClientData, void(*xDestroy)(void *))
SQLITE_API int sqlite3_drop_modules (sqlite3 *db, const char **azKeep)
SQLITE_API int sqlite3_declare_vtab (sqlite3 *, const char *zSQL)
SQLITE_API int sqlite3_overload_function (sqlite3 *, const char *zFuncName, int nArg)
SQLITE_API int sqlite3_blob_open (sqlite3 *, const char *zDb, const char *zTable, const char *zColumn, sqlite3_int64 iRow, int flags, sqlite3_blob **ppBlob)
SQLITE_API int sqlite3_blob_reopen (sqlite3_blob *, sqlite3_int64)
SQLITE_API int sqlite3_blob_close (sqlite3_blob *)
SQLITE_API int sqlite3_blob_bytes (sqlite3_blob *)
SQLITE_API int sqlite3_blob_read (sqlite3_blob *, void *Z, int N, int iOffset)
SQLITE_API int sqlite3_blob_write (sqlite3_blob *, const void *z, int n, int iOffset)
SQLITE_API sqlite3_vfs * sqlite3_vfs_find (const char *zVfsName)
SQLITE_API int sqlite3_vfs_register (sqlite3_vfs *, int makeDflt)
SQLITE_API int sqlite3_vfs_unregister (sqlite3_vfs *)
SQLITE_API sqlite3_mutex * sqlite3_mutex_alloc (int)
SQLITE_API void sqlite3_mutex_free (sqlite3_mutex *)
SQLITE_API void sqlite3_mutex_enter (sqlite3_mutex *)
SQLITE_API int sqlite3_mutex_try (sqlite3_mutex *)
SQLITE_API void sqlite3_mutex_leave (sqlite3_mutex *)
SQLITE_API int sqlite3_mutex_held (sqlite3_mutex *)
SQLITE_API int sqlite3_mutex_notheld (sqlite3_mutex *)
SQLITE_API sqlite3_mutex * sqlite3_db_mutex (sqlite3 *)
SQLITE_API int sqlite3_file_control (sqlite3 *, const char *zDbName, int op, void *)
SQLITE_API int sqlite3_test_control (int op,...)
SQLITE_API int sqlite3_keyword_count (void)
SQLITE_API int sqlite3_keyword_name (int, const char **, int *)
SQLITE_API int sqlite3_keyword_check (const char *, int)
SQLITE_API sqlite3_str * sqlite3_str_new (sqlite3 *)
SQLITE_API char * sqlite3_str_finish (sqlite3_str *)
SQLITE_API void sqlite3_str_appendf (sqlite3_str *, const char *zFormat,...)
SQLITE_API void sqlite3_str_vappendf (sqlite3_str *, const char *zFormat, va_list)
SQLITE_API void sqlite3_str_append (sqlite3_str *, const char *zIn, int N)
SQLITE_API void sqlite3_str_appendall (sqlite3_str *, const char *zIn)
SQLITE_API void sqlite3_str_appendchar (sqlite3_str *, int N, char C)
SQLITE_API void sqlite3_str_reset (sqlite3_str *)
SQLITE_API int sqlite3_str_errcode (sqlite3_str *)
SQLITE_API int sqlite3_str_length (sqlite3_str *)
SQLITE_API char * sqlite3_str_value (sqlite3_str *)
SQLITE_API int sqlite3_status (int op, int *pCurrent, int *pHighwater, int resetFlag)
SQLITE_API int sqlite3_status64 (int op, sqlite3_int64 *pCurrent, sqlite3_int64 *pHighwater, int resetFlag)
SQLITE_API int sqlite3_db_status (sqlite3 *, int op, int *pCur, int *pHiwtr, int resetFlg)
SQLITE_API int sqlite3_stmt_status (sqlite3_stmt *, int op, int resetFlg)
SQLITE_API sqlite3_backup * sqlite3_backup_init (sqlite3 *pDest, const char *zDestName, sqlite3 *pSource, const char *zSourceName)
SQLITE_API int sqlite3_backup_step (sqlite3_backup *p, int nPage)
SQLITE_API int sqlite3_backup_finish (sqlite3_backup *p)
SQLITE_API int sqlite3_backup_remaining (sqlite3_backup *p)
SQLITE_API int sqlite3_backup_pagecount (sqlite3_backup *p)
SQLITE_API int sqlite3_unlock_notify (sqlite3 *pBlocked, void(*xNotify)(void **apArg, int nArg), void *pNotifyArg)
SQLITE_API int sqlite3_stricmp (const char *, const char *)
SQLITE_API int sqlite3_strnicmp (const char *, const char *, int)
SQLITE_API int sqlite3_strglob (const char *zGlob, const char *zStr)
SQLITE_API int sqlite3_strlike (const char *zGlob, const char *zStr, unsigned int cEsc)
SQLITE_API void sqlite3_log (int iErrCode, const char *zFormat,...)
SQLITE_API void * sqlite3_wal_hook (sqlite3 *, int(*)(void *, sqlite3 *, const char *, int), void *)
SQLITE_API int sqlite3_wal_autocheckpoint (sqlite3 *db, int N)
SQLITE_API int sqlite3_wal_checkpoint (sqlite3 *db, const char *zDb)
SQLITE_API int sqlite3_wal_checkpoint_v2 (sqlite3 *db, const char *zDb, int eMode, int *pnLog, int *pnCkpt)
SQLITE_API int sqlite3_vtab_config (sqlite3 *, int op,...)
SQLITE_API int sqlite3_vtab_on_conflict (sqlite3 *)
SQLITE_API int sqlite3_vtab_nochange (sqlite3_context *)
SQLITE_API const char * sqlite3_vtab_collation (sqlite3_index_info *, int)
SQLITE_API int sqlite3_vtab_distinct (sqlite3_index_info *)
SQLITE_API int sqlite3_vtab_in (sqlite3_index_info *, int iCons, int bHandle)
SQLITE_API int sqlite3_vtab_in_first (sqlite3_value *pVal, sqlite3_value **ppOut)
SQLITE_API int sqlite3_vtab_in_next (sqlite3_value *pVal, sqlite3_value **ppOut)
SQLITE_API int sqlite3_vtab_rhs_value (sqlite3_index_info *, int, sqlite3_value **ppVal)
SQLITE_API int sqlite3_stmt_scanstatus (sqlite3_stmt *pStmt, int idx, int iScanStatusOp, void *pOut)
SQLITE_API int sqlite3_stmt_scanstatus_v2 (sqlite3_stmt *pStmt, int idx, int iScanStatusOp, int flags, void *pOut)
SQLITE_API void sqlite3_stmt_scanstatus_reset (sqlite3_stmt *)
SQLITE_API int sqlite3_db_cacheflush (sqlite3 *)
SQLITE_API int sqlite3_system_errno (sqlite3 *)
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_get (sqlite3 *db, const char *zSchema, sqlite3_snapshot **ppSnapshot)
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_open (sqlite3 *db, const char *zSchema, sqlite3_snapshot *pSnapshot)
SQLITE_API SQLITE_EXPERIMENTAL void sqlite3_snapshot_free (sqlite3_snapshot *)
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_cmp (sqlite3_snapshot *p1, sqlite3_snapshot *p2)
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover (sqlite3 *db, const char *zDb)
SQLITE_API unsigned char * sqlite3_serialize (sqlite3 *db, const char *zSchema, sqlite3_int64 *piSize, unsigned int mFlags)
SQLITE_API int sqlite3_deserialize (sqlite3 *db, const char *zSchema, unsigned char *pData, sqlite3_int64 szDb, sqlite3_int64 szBuf, unsigned mFlags)
SQLITE_API int sqlite3_rtree_geometry_callback (sqlite3 *db, const char *zGeom, int(*xGeom)(sqlite3_rtree_geometry *, int, sqlite3_rtree_dbl *, int *), void *pContext)
SQLITE_API int sqlite3_rtree_query_callback (sqlite3 *db, const char *zQueryFunc, int(*xQueryFunc)(sqlite3_rtree_query_info *), void *pContext, void(*xDestructor)(void *))
SQLITE_PRIVATE void sqlite3HashInit (Hash *)
SQLITE_PRIVATE void * sqlite3HashInsert (Hash *, const char *pKey, void *pData)
SQLITE_PRIVATE void * sqlite3HashFind (const Hash *, const char *pKey)
SQLITE_PRIVATE void sqlite3HashClear (Hash *)
SQLITE_PRIVATE int sqlite3OsInit (void)
SQLITE_PRIVATE void sqlite3OsClose (sqlite3_file *)
SQLITE_PRIVATE int sqlite3OsRead (sqlite3_file *, void *, int amt, i64 offset)
SQLITE_PRIVATE int sqlite3OsWrite (sqlite3_file *, const void *, int amt, i64 offset)
SQLITE_PRIVATE int sqlite3OsTruncate (sqlite3_file *, i64 size)
SQLITE_PRIVATE int sqlite3OsSync (sqlite3_file *, int)
SQLITE_PRIVATE int sqlite3OsFileSize (sqlite3_file *, i64 *pSize)
SQLITE_PRIVATE int sqlite3OsLock (sqlite3_file *, int)
SQLITE_PRIVATE int sqlite3OsUnlock (sqlite3_file *, int)
SQLITE_PRIVATE int sqlite3OsCheckReservedLock (sqlite3_file *id, int *pResOut)
SQLITE_PRIVATE int sqlite3OsFileControl (sqlite3_file *, int, void *)
SQLITE_PRIVATE void sqlite3OsFileControlHint (sqlite3_file *, int, void *)
SQLITE_PRIVATE int sqlite3OsSectorSize (sqlite3_file *id)
SQLITE_PRIVATE int sqlite3OsDeviceCharacteristics (sqlite3_file *id)
SQLITE_PRIVATE int sqlite3OsFetch (sqlite3_file *id, i64, int, void **)
SQLITE_PRIVATE int sqlite3OsUnfetch (sqlite3_file *, i64, void *)
SQLITE_PRIVATE int sqlite3OsOpen (sqlite3_vfs *, const char *, sqlite3_file *, int, int *)
SQLITE_PRIVATE int sqlite3OsDelete (sqlite3_vfs *, const char *, int)
SQLITE_PRIVATE int sqlite3OsAccess (sqlite3_vfs *, const char *, int, int *pResOut)
SQLITE_PRIVATE int sqlite3OsFullPathname (sqlite3_vfs *, const char *, int, char *)
SQLITE_PRIVATE int sqlite3OsRandomness (sqlite3_vfs *, int, char *)
SQLITE_PRIVATE int sqlite3OsSleep (sqlite3_vfs *, int)
SQLITE_PRIVATE int sqlite3OsGetLastError (sqlite3_vfs *)
SQLITE_PRIVATE int sqlite3OsCurrentTimeInt64 (sqlite3_vfs *, sqlite3_int64 *)
SQLITE_PRIVATE int sqlite3OsOpenMalloc (sqlite3_vfs *, const char *, sqlite3_file **, int, int *)
SQLITE_PRIVATE void sqlite3OsCloseFree (sqlite3_file *)
SQLITE_PRIVATE int sqlite3PagerOpen (sqlite3_vfs *, Pager **ppPager, const char *, int, int, int, void(*)(DbPage *))
SQLITE_PRIVATE int sqlite3PagerClose (Pager *pPager, sqlite3 *)
SQLITE_PRIVATE int sqlite3PagerReadFileheader (Pager *, int, unsigned char *)
SQLITE_PRIVATE void sqlite3PagerSetBusyHandler (Pager *, int(*)(void *), void *)
SQLITE_PRIVATE int sqlite3PagerSetPagesize (Pager *, u32 *, int)
SQLITE_PRIVATE Pgno sqlite3PagerMaxPageCount (Pager *, Pgno)
SQLITE_PRIVATE void sqlite3PagerSetCachesize (Pager *, int)
SQLITE_PRIVATE int sqlite3PagerSetSpillsize (Pager *, int)
SQLITE_PRIVATE void sqlite3PagerSetMmapLimit (Pager *, sqlite3_int64)
SQLITE_PRIVATE void sqlite3PagerShrink (Pager *)
SQLITE_PRIVATE void sqlite3PagerSetFlags (Pager *, unsigned)
SQLITE_PRIVATE int sqlite3PagerLockingMode (Pager *, int)
SQLITE_PRIVATE int sqlite3PagerSetJournalMode (Pager *, int)
SQLITE_PRIVATE int sqlite3PagerGetJournalMode (Pager *)
SQLITE_PRIVATE int sqlite3PagerOkToChangeJournalMode (Pager *)
SQLITE_PRIVATE i64 sqlite3PagerJournalSizeLimit (Pager *, i64)
SQLITE_PRIVATE sqlite3_backup ** sqlite3PagerBackupPtr (Pager *)
SQLITE_PRIVATE int sqlite3PagerFlush (Pager *)
SQLITE_PRIVATE int sqlite3PagerGet (Pager *pPager, Pgno pgno, DbPage **ppPage, int clrFlag)
SQLITE_PRIVATE DbPage * sqlite3PagerLookup (Pager *pPager, Pgno pgno)
SQLITE_PRIVATE void sqlite3PagerRef (DbPage *)
SQLITE_PRIVATE void sqlite3PagerUnref (DbPage *)
SQLITE_PRIVATE void sqlite3PagerUnrefNotNull (DbPage *)
SQLITE_PRIVATE void sqlite3PagerUnrefPageOne (DbPage *)
SQLITE_PRIVATE int sqlite3PagerWrite (DbPage *)
SQLITE_PRIVATE void sqlite3PagerDontWrite (DbPage *)
SQLITE_PRIVATE int sqlite3PagerMovepage (Pager *, DbPage *, Pgno, int)
SQLITE_PRIVATE int sqlite3PagerPageRefcount (DbPage *)
SQLITE_PRIVATE void * sqlite3PagerGetData (DbPage *)
SQLITE_PRIVATE void * sqlite3PagerGetExtra (DbPage *)
SQLITE_PRIVATE void sqlite3PagerPagecount (Pager *, int *)
SQLITE_PRIVATE int sqlite3PagerBegin (Pager *, int exFlag, int)
SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne (Pager *, const char *zSuper, int)
SQLITE_PRIVATE int sqlite3PagerExclusiveLock (Pager *)
SQLITE_PRIVATE int sqlite3PagerSync (Pager *pPager, const char *zSuper)
SQLITE_PRIVATE int sqlite3PagerCommitPhaseTwo (Pager *)
SQLITE_PRIVATE int sqlite3PagerRollback (Pager *)
SQLITE_PRIVATE int sqlite3PagerOpenSavepoint (Pager *pPager, int n)
SQLITE_PRIVATE int sqlite3PagerSavepoint (Pager *pPager, int op, int iSavepoint)
SQLITE_PRIVATE int sqlite3PagerSharedLock (Pager *pPager)
SQLITE_PRIVATE int sqlite3PagerDirectReadOk (Pager *pPager, Pgno pgno)
SQLITE_PRIVATE u8 sqlite3PagerIsreadonly (Pager *)
SQLITE_PRIVATE u32 sqlite3PagerDataVersion (Pager *)
SQLITE_PRIVATE int sqlite3PagerMemUsed (Pager *)
SQLITE_PRIVATE const char * sqlite3PagerFilename (const Pager *, int)
SQLITE_PRIVATE sqlite3_vfs * sqlite3PagerVfs (Pager *)
SQLITE_PRIVATE sqlite3_file * sqlite3PagerFile (Pager *)
SQLITE_PRIVATE sqlite3_file * sqlite3PagerJrnlFile (Pager *)
SQLITE_PRIVATE const char * sqlite3PagerJournalname (Pager *)
SQLITE_PRIVATE void * sqlite3PagerTempSpace (Pager *)
SQLITE_PRIVATE int sqlite3PagerIsMemdb (Pager *)
SQLITE_PRIVATE void sqlite3PagerCacheStat (Pager *, int, int, u64 *)
SQLITE_PRIVATE void sqlite3PagerClearCache (Pager *)
SQLITE_PRIVATE int sqlite3SectorSize (sqlite3_file *)
SQLITE_PRIVATE void sqlite3PagerTruncateImage (Pager *, Pgno)
SQLITE_PRIVATE void sqlite3PagerRekey (DbPage *, Pgno, u16)
SQLITE_PRIVATE int sqlite3BtreeOpen (sqlite3_vfs *pVfs, const char *zFilename, sqlite3 *db, Btree **ppBtree, int flags, int vfsFlags)
SQLITE_PRIVATE int sqlite3BtreeClose (Btree *)
SQLITE_PRIVATE int sqlite3BtreeSetCacheSize (Btree *, int)
SQLITE_PRIVATE int sqlite3BtreeSetSpillSize (Btree *, int)
SQLITE_PRIVATE int sqlite3BtreeSetPagerFlags (Btree *, unsigned)
SQLITE_PRIVATE int sqlite3BtreeSetPageSize (Btree *p, int nPagesize, int nReserve, int eFix)
SQLITE_PRIVATE int sqlite3BtreeGetPageSize (Btree *)
SQLITE_PRIVATE Pgno sqlite3BtreeMaxPageCount (Btree *, Pgno)
SQLITE_PRIVATE Pgno sqlite3BtreeLastPage (Btree *)
SQLITE_PRIVATE int sqlite3BtreeSecureDelete (Btree *, int)
SQLITE_PRIVATE int sqlite3BtreeGetRequestedReserve (Btree *)
SQLITE_PRIVATE int sqlite3BtreeGetReserveNoMutex (Btree *p)
SQLITE_PRIVATE int sqlite3BtreeSetAutoVacuum (Btree *, int)
SQLITE_PRIVATE int sqlite3BtreeGetAutoVacuum (Btree *)
SQLITE_PRIVATE int sqlite3BtreeBeginTrans (Btree *, int, int *)
SQLITE_PRIVATE int sqlite3BtreeCommitPhaseOne (Btree *, const char *)
SQLITE_PRIVATE int sqlite3BtreeCommitPhaseTwo (Btree *, int)
SQLITE_PRIVATE int sqlite3BtreeCommit (Btree *)
SQLITE_PRIVATE int sqlite3BtreeRollback (Btree *, int, int)
SQLITE_PRIVATE int sqlite3BtreeBeginStmt (Btree *, int)
SQLITE_PRIVATE int sqlite3BtreeCreateTable (Btree *, Pgno *, int flags)
SQLITE_PRIVATE int sqlite3BtreeTxnState (Btree *)
SQLITE_PRIVATE int sqlite3BtreeIsInBackup (Btree *)
SQLITE_PRIVATE void * sqlite3BtreeSchema (Btree *, int, void(*)(void *))
SQLITE_PRIVATE int sqlite3BtreeSchemaLocked (Btree *pBtree)
SQLITE_PRIVATE int sqlite3BtreeLockTable (Btree *pBtree, int iTab, u8 isWriteLock)
SQLITE_PRIVATE int sqlite3BtreeSavepoint (Btree *, int, int)
SQLITE_PRIVATE const char * sqlite3BtreeGetFilename (Btree *)
SQLITE_PRIVATE const char * sqlite3BtreeGetJournalname (Btree *)
SQLITE_PRIVATE int sqlite3BtreeCopyFile (Btree *, Btree *)
SQLITE_PRIVATE int sqlite3BtreeIncrVacuum (Btree *)
SQLITE_PRIVATE int sqlite3BtreeDropTable (Btree *, int, int *)
SQLITE_PRIVATE int sqlite3BtreeClearTable (Btree *, int, i64 *)
SQLITE_PRIVATE int sqlite3BtreeClearTableOfCursor (BtCursor *)
SQLITE_PRIVATE int sqlite3BtreeTripAllCursors (Btree *, int, int)
SQLITE_PRIVATE void sqlite3BtreeGetMeta (Btree *pBtree, int idx, u32 *pValue)
SQLITE_PRIVATE int sqlite3BtreeUpdateMeta (Btree *, int idx, u32 value)
SQLITE_PRIVATE int sqlite3BtreeNewDb (Btree *p)
SQLITE_PRIVATE int sqlite3BtreeCursor (Btree *, Pgno iTable, int wrFlag, struct KeyInfo *, BtCursor *pCursor)
SQLITE_PRIVATE BtCursor * sqlite3BtreeFakeValidCursor (void)
SQLITE_PRIVATE int sqlite3BtreeCursorSize (void)
SQLITE_PRIVATE void sqlite3BtreeCursorZero (BtCursor *)
SQLITE_PRIVATE void sqlite3BtreeCursorHintFlags (BtCursor *, unsigned)
SQLITE_PRIVATE int sqlite3BtreeCloseCursor (BtCursor *)
SQLITE_PRIVATE int sqlite3BtreeTableMoveto (BtCursor *, i64 intKey, int bias, int *pRes)
SQLITE_PRIVATE int sqlite3BtreeIndexMoveto (BtCursor *, UnpackedRecord *pUnKey, int *pRes)
SQLITE_PRIVATE int sqlite3BtreeCursorHasMoved (BtCursor *)
SQLITE_PRIVATE int sqlite3BtreeCursorRestore (BtCursor *, int *)
SQLITE_PRIVATE int sqlite3BtreeDelete (BtCursor *, u8 flags)
SQLITE_PRIVATE int sqlite3BtreeInsert (BtCursor *, const BtreePayload *pPayload, int flags, int seekResult)
SQLITE_PRIVATE int sqlite3BtreeFirst (BtCursor *, int *pRes)
SQLITE_PRIVATE int sqlite3BtreeLast (BtCursor *, int *pRes)
SQLITE_PRIVATE int sqlite3BtreeNext (BtCursor *, int flags)
SQLITE_PRIVATE int sqlite3BtreeEof (BtCursor *)
SQLITE_PRIVATE int sqlite3BtreePrevious (BtCursor *, int flags)
SQLITE_PRIVATE i64 sqlite3BtreeIntegerKey (BtCursor *)
SQLITE_PRIVATE void sqlite3BtreeCursorPin (BtCursor *)
SQLITE_PRIVATE void sqlite3BtreeCursorUnpin (BtCursor *)
SQLITE_PRIVATE i64 sqlite3BtreeOffset (BtCursor *)
SQLITE_PRIVATE int sqlite3BtreePayload (BtCursor *, u32 offset, u32 amt, void *)
SQLITE_PRIVATE const void * sqlite3BtreePayloadFetch (BtCursor *, u32 *pAmt)
SQLITE_PRIVATE u32 sqlite3BtreePayloadSize (BtCursor *)
SQLITE_PRIVATE sqlite3_int64 sqlite3BtreeMaxRecordSize (BtCursor *)
SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck (sqlite3 *db, Btree *p, Pgno *aRoot, sqlite3_value *aCnt, int nRoot, int mxErr, int *pnErr, char **pzOut)
SQLITE_PRIVATE struct Pager * sqlite3BtreePager (Btree *)
SQLITE_PRIVATE i64 sqlite3BtreeRowCountEst (BtCursor *)
SQLITE_PRIVATE int sqlite3BtreePayloadChecked (BtCursor *, u32 offset, u32 amt, void *)
SQLITE_PRIVATE int sqlite3BtreePutData (BtCursor *, u32 offset, u32 amt, void *)
SQLITE_PRIVATE void sqlite3BtreeIncrblobCursor (BtCursor *)
SQLITE_PRIVATE void sqlite3BtreeClearCursor (BtCursor *)
SQLITE_PRIVATE int sqlite3BtreeSetVersion (Btree *pBt, int iVersion)
SQLITE_PRIVATE int sqlite3BtreeCursorHasHint (BtCursor *, unsigned int mask)
SQLITE_PRIVATE int sqlite3BtreeIsReadonly (Btree *pBt)
SQLITE_PRIVATE int sqlite3HeaderSizeBtree (void)
SQLITE_PRIVATE int sqlite3BtreeCursorIsValidNN (BtCursor *)
SQLITE_PRIVATE int sqlite3BtreeCount (sqlite3 *, BtCursor *, i64 *)
SQLITE_PRIVATE int sqlite3BtreeTransferRow (BtCursor *, BtCursor *, i64)
SQLITE_PRIVATE void sqlite3BtreeClearCache (Btree *)
SQLITE_PRIVATE void sqlite3BtreeEnter (Btree *)
SQLITE_PRIVATE void sqlite3BtreeEnterAll (sqlite3 *)
SQLITE_PRIVATE int sqlite3BtreeSharable (Btree *)
SQLITE_PRIVATE void sqlite3BtreeEnterCursor (BtCursor *)
SQLITE_PRIVATE int sqlite3BtreeConnectionCount (Btree *)
SQLITE_PRIVATE Vdbe * sqlite3VdbeCreate (Parse *)
SQLITE_PRIVATE Parse * sqlite3VdbeParser (Vdbe *)
SQLITE_PRIVATE int sqlite3VdbeAddOp0 (Vdbe *, int)
SQLITE_PRIVATE int sqlite3VdbeAddOp1 (Vdbe *, int, int)
SQLITE_PRIVATE int sqlite3VdbeAddOp2 (Vdbe *, int, int, int)
SQLITE_PRIVATE int sqlite3VdbeGoto (Vdbe *, int)
SQLITE_PRIVATE int sqlite3VdbeLoadString (Vdbe *, int, const char *)
SQLITE_PRIVATE void sqlite3VdbeMultiLoad (Vdbe *, int, const char *,...)
SQLITE_PRIVATE int sqlite3VdbeAddOp3 (Vdbe *, int, int, int, int)
SQLITE_PRIVATE int sqlite3VdbeAddOp4 (Vdbe *, int, int, int, int, const char *zP4, int)
SQLITE_PRIVATE int sqlite3VdbeAddOp4Dup8 (Vdbe *, int, int, int, int, const u8 *, int)
SQLITE_PRIVATE int sqlite3VdbeAddOp4Int (Vdbe *, int, int, int, int, int)
SQLITE_PRIVATE int sqlite3VdbeAddFunctionCall (Parse *, int, int, int, int, const FuncDef *, int)
SQLITE_PRIVATE void sqlite3VdbeEndCoroutine (Vdbe *, int)
SQLITE_PRIVATE VdbeOp * sqlite3VdbeAddOpList (Vdbe *, int nOp, VdbeOpList const *aOp, int iLineno)
SQLITE_PRIVATE int sqlite3VdbeExplain (Parse *, u8, const char *,...)
SQLITE_PRIVATE void sqlite3VdbeExplainPop (Parse *)
SQLITE_PRIVATE int sqlite3VdbeExplainParent (Parse *)
SQLITE_PRIVATE void sqlite3VdbeAddParseSchemaOp (Vdbe *, int, char *, u16)
SQLITE_PRIVATE void sqlite3VdbeChangeOpcode (Vdbe *, int addr, u8)
SQLITE_PRIVATE void sqlite3VdbeChangeP1 (Vdbe *, int addr, int P1)
SQLITE_PRIVATE void sqlite3VdbeChangeP2 (Vdbe *, int addr, int P2)
SQLITE_PRIVATE void sqlite3VdbeChangeP3 (Vdbe *, int addr, int P3)
SQLITE_PRIVATE void sqlite3VdbeChangeP5 (Vdbe *, u16 P5)
SQLITE_PRIVATE void sqlite3VdbeTypeofColumn (Vdbe *, int)
SQLITE_PRIVATE void sqlite3VdbeJumpHere (Vdbe *, int addr)
SQLITE_PRIVATE void sqlite3VdbeJumpHereOrPopInst (Vdbe *, int addr)
SQLITE_PRIVATE int sqlite3VdbeChangeToNoop (Vdbe *, int addr)
SQLITE_PRIVATE int sqlite3VdbeDeletePriorOpcode (Vdbe *, u8 op)
SQLITE_PRIVATE void sqlite3VdbeChangeP4 (Vdbe *, int addr, const char *zP4, int N)
SQLITE_PRIVATE void sqlite3VdbeAppendP4 (Vdbe *, void *pP4, int p4type)
SQLITE_PRIVATE void sqlite3VdbeSetP4KeyInfo (Parse *, Index *)
SQLITE_PRIVATE void sqlite3VdbeUsesBtree (Vdbe *, int)
SQLITE_PRIVATE VdbeOp * sqlite3VdbeGetOp (Vdbe *, int)
SQLITE_PRIVATE VdbeOp * sqlite3VdbeGetLastOp (Vdbe *)
SQLITE_PRIVATE int sqlite3VdbeMakeLabel (Parse *)
SQLITE_PRIVATE void sqlite3VdbeRunOnlyOnce (Vdbe *)
SQLITE_PRIVATE void sqlite3VdbeReusable (Vdbe *)
SQLITE_PRIVATE void sqlite3VdbeDelete (Vdbe *)
SQLITE_PRIVATE void sqlite3VdbeMakeReady (Vdbe *, Parse *)
SQLITE_PRIVATE int sqlite3VdbeFinalize (Vdbe *)
SQLITE_PRIVATE void sqlite3VdbeResolveLabel (Vdbe *, int)
SQLITE_PRIVATE int sqlite3VdbeCurrentAddr (Vdbe *)
SQLITE_PRIVATE void sqlite3VdbeResetStepResult (Vdbe *)
SQLITE_PRIVATE void sqlite3VdbeRewind (Vdbe *)
SQLITE_PRIVATE int sqlite3VdbeReset (Vdbe *)
SQLITE_PRIVATE void sqlite3VdbeSetNumCols (Vdbe *, int)
SQLITE_PRIVATE int sqlite3VdbeSetColName (Vdbe *, int, int, const char *, void(*)(void *))
SQLITE_PRIVATE void sqlite3VdbeCountChanges (Vdbe *)
SQLITE_PRIVATE sqlite3 * sqlite3VdbeDb (Vdbe *)
SQLITE_PRIVATE u8 sqlite3VdbePrepareFlags (Vdbe *)
SQLITE_PRIVATE void sqlite3VdbeSetSql (Vdbe *, const char *z, int n, u8)
SQLITE_PRIVATE void sqlite3VdbeSwap (Vdbe *, Vdbe *)
SQLITE_PRIVATE VdbeOp * sqlite3VdbeTakeOpArray (Vdbe *, int *, int *)
SQLITE_PRIVATE sqlite3_value * sqlite3VdbeGetBoundValue (Vdbe *, int, u8)
SQLITE_PRIVATE void sqlite3VdbeSetVarmask (Vdbe *, int)
SQLITE_PRIVATE char * sqlite3VdbeExpandSql (Vdbe *, const char *)
SQLITE_PRIVATE int sqlite3MemCompare (const Mem *, const Mem *, const CollSeq *)
SQLITE_PRIVATE int sqlite3BlobCompare (const Mem *, const Mem *)
SQLITE_PRIVATE void sqlite3VdbeRecordUnpack (KeyInfo *, int, const void *, UnpackedRecord *)
SQLITE_PRIVATE int sqlite3VdbeRecordCompare (int, const void *, UnpackedRecord *)
SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip (int, const void *, UnpackedRecord *, int)
SQLITE_PRIVATE UnpackedRecord * sqlite3VdbeAllocUnpackedRecord (KeyInfo *)
SQLITE_PRIVATE RecordCompare sqlite3VdbeFindCompare (UnpackedRecord *)
SQLITE_PRIVATE void sqlite3VdbeLinkSubProgram (Vdbe *, SubProgram *)
SQLITE_PRIVATE int sqlite3VdbeHasSubProgram (Vdbe *)
SQLITE_PRIVATE void sqlite3MemSetArrayInt64 (sqlite3_value *aMem, int iIdx, i64 val)
SQLITE_PRIVATE int sqlite3NotPureFunc (sqlite3_context *)
SQLITE_PRIVATE int sqlite3PcacheInitialize (void)
SQLITE_PRIVATE void sqlite3PcacheShutdown (void)
SQLITE_PRIVATE void sqlite3PCacheBufferSetup (void *, int sz, int n)
SQLITE_PRIVATE int sqlite3PcacheOpen (int szPage, int szExtra, int bPurgeable, int(*xStress)(void *, PgHdr *), void *pStress, PCache *pToInit)
SQLITE_PRIVATE int sqlite3PcacheSetPageSize (PCache *, int)
SQLITE_PRIVATE int sqlite3PcacheSize (void)
SQLITE_PRIVATE sqlite3_pcache_page * sqlite3PcacheFetch (PCache *, Pgno, int createFlag)
SQLITE_PRIVATE int sqlite3PcacheFetchStress (PCache *, Pgno, sqlite3_pcache_page **)
SQLITE_PRIVATE PgHdr * sqlite3PcacheFetchFinish (PCache *, Pgno, sqlite3_pcache_page *pPage)
SQLITE_PRIVATE void sqlite3PcacheRelease (PgHdr *)
SQLITE_PRIVATE void sqlite3PcacheDrop (PgHdr *)
SQLITE_PRIVATE void sqlite3PcacheMakeDirty (PgHdr *)
SQLITE_PRIVATE void sqlite3PcacheMakeClean (PgHdr *)
SQLITE_PRIVATE void sqlite3PcacheCleanAll (PCache *)
SQLITE_PRIVATE void sqlite3PcacheClearWritable (PCache *)
SQLITE_PRIVATE void sqlite3PcacheMove (PgHdr *, Pgno)
SQLITE_PRIVATE void sqlite3PcacheTruncate (PCache *, Pgno x)
SQLITE_PRIVATE PgHdr * sqlite3PcacheDirtyList (PCache *)
SQLITE_PRIVATE void sqlite3PcacheClose (PCache *)
SQLITE_PRIVATE void sqlite3PcacheClearSyncFlags (PCache *)
SQLITE_PRIVATE void sqlite3PcacheClear (PCache *)
SQLITE_PRIVATE i64 sqlite3PcacheRefCount (PCache *)
SQLITE_PRIVATE void sqlite3PcacheRef (PgHdr *)
SQLITE_PRIVATE i64 sqlite3PcachePageRefcount (PgHdr *)
SQLITE_PRIVATE int sqlite3PcachePagecount (PCache *)
SQLITE_PRIVATE void sqlite3PcacheSetCachesize (PCache *, int)
SQLITE_PRIVATE int sqlite3PcacheSetSpillsize (PCache *, int)
SQLITE_PRIVATE void sqlite3PcacheShrink (PCache *)
SQLITE_PRIVATE void sqlite3PCacheSetDefault (void)
SQLITE_PRIVATE int sqlite3HeaderSizePcache (void)
SQLITE_PRIVATE int sqlite3HeaderSizePcache1 (void)
SQLITE_PRIVATE int sqlite3PCachePercentDirty (PCache *)
SQLITE_PRIVATE int sqlite3PCacheIsDirty (PCache *pCache)
SQLITE_PRIVATE int sqlite3WalkExpr (Walker *, Expr *)
SQLITE_PRIVATE int sqlite3WalkExprNN (Walker *, Expr *)
SQLITE_PRIVATE int sqlite3WalkExprList (Walker *, ExprList *)
SQLITE_PRIVATE int sqlite3WalkSelect (Walker *, Select *)
SQLITE_PRIVATE int sqlite3WalkSelectExpr (Walker *, Select *)
SQLITE_PRIVATE int sqlite3WalkSelectFrom (Walker *, Select *)
SQLITE_PRIVATE int sqlite3ExprWalkNoop (Walker *, Expr *)
SQLITE_PRIVATE int sqlite3SelectWalkNoop (Walker *, Select *)
SQLITE_PRIVATE int sqlite3SelectWalkFail (Walker *, Select *)
SQLITE_PRIVATE int sqlite3WalkerDepthIncrease (Walker *, Select *)
SQLITE_PRIVATE void sqlite3WalkerDepthDecrease (Walker *, Select *)
SQLITE_PRIVATE void sqlite3WalkWinDefnDummyCallback (Walker *, Select *)
SQLITE_PRIVATE void sqlite3SelectPopWith (Walker *, Select *)
SQLITE_PRIVATE Select * sqlite3MultiValues (Parse *pParse, Select *pLeft, ExprList *pRow)
SQLITE_PRIVATE void sqlite3MultiValuesEnd (Parse *pParse, Select *pVal)
SQLITE_PRIVATE void sqlite3WindowDelete (sqlite3 *, Window *)
SQLITE_PRIVATE void sqlite3WindowUnlinkFromSelect (Window *)
SQLITE_PRIVATE void sqlite3WindowListDelete (sqlite3 *db, Window *p)
SQLITE_PRIVATE Window * sqlite3WindowAlloc (Parse *, int, int, Expr *, int, Expr *, u8)
SQLITE_PRIVATE void sqlite3WindowAttach (Parse *, Expr *, Window *)
SQLITE_PRIVATE void sqlite3WindowLink (Select *pSel, Window *pWin)
SQLITE_PRIVATE int sqlite3WindowCompare (const Parse *, const Window *, const Window *, int)
SQLITE_PRIVATE void sqlite3WindowCodeInit (Parse *, Select *)
SQLITE_PRIVATE void sqlite3WindowCodeStep (Parse *, Select *, WhereInfo *, int, int)
SQLITE_PRIVATE int sqlite3WindowRewrite (Parse *, Select *)
SQLITE_PRIVATE void sqlite3WindowUpdate (Parse *, Window *, Window *, FuncDef *)
SQLITE_PRIVATE Window * sqlite3WindowDup (sqlite3 *db, Expr *pOwner, Window *p)
SQLITE_PRIVATE Window * sqlite3WindowListDup (sqlite3 *db, Window *p)
SQLITE_PRIVATE void sqlite3WindowFunctions (void)
SQLITE_PRIVATE void sqlite3WindowChain (Parse *, Window *, Window *)
SQLITE_PRIVATE Window * sqlite3WindowAssemble (Parse *, Window *, ExprList *, ExprList *, Token *)
SQLITE_PRIVATE int sqlite3ReportError (int iErr, int lineno, const char *zType)
SQLITE_PRIVATE int sqlite3CorruptError (int)
SQLITE_PRIVATE int sqlite3MisuseError (int)
SQLITE_PRIVATE int sqlite3CantopenError (int)
SQLITE_PRIVATE int sqlite3IsIdChar (u8)
SQLITE_PRIVATE int sqlite3StrICmp (const char *, const char *)
SQLITE_PRIVATE int sqlite3Strlen30 (const char *)
SQLITE_PRIVATE char * sqlite3ColumnType (Column *, char *)
SQLITE_PRIVATE int sqlite3MallocInit (void)
SQLITE_PRIVATE void sqlite3MallocEnd (void)
SQLITE_PRIVATE void * sqlite3Malloc (u64)
SQLITE_PRIVATE void * sqlite3MallocZero (u64)
SQLITE_PRIVATE void * sqlite3DbMallocZero (sqlite3 *, u64)
SQLITE_PRIVATE void * sqlite3DbMallocRaw (sqlite3 *, u64)
SQLITE_PRIVATE void * sqlite3DbMallocRawNN (sqlite3 *, u64)
SQLITE_PRIVATE char * sqlite3DbStrDup (sqlite3 *, const char *)
SQLITE_PRIVATE char * sqlite3DbStrNDup (sqlite3 *, const char *, u64)
SQLITE_PRIVATE char * sqlite3DbSpanDup (sqlite3 *, const char *, const char *)
SQLITE_PRIVATE void * sqlite3Realloc (void *, u64)
SQLITE_PRIVATE void * sqlite3DbReallocOrFree (sqlite3 *, void *, u64)
SQLITE_PRIVATE void * sqlite3DbRealloc (sqlite3 *, void *, u64)
SQLITE_PRIVATE void sqlite3DbFree (sqlite3 *, void *)
SQLITE_PRIVATE void sqlite3DbFreeNN (sqlite3 *, void *)
SQLITE_PRIVATE void sqlite3DbNNFreeNN (sqlite3 *, void *)
SQLITE_PRIVATE int sqlite3MallocSize (const void *)
SQLITE_PRIVATE int sqlite3DbMallocSize (sqlite3 *, const void *)
SQLITE_PRIVATE void * sqlite3PageMalloc (int)
SQLITE_PRIVATE void sqlite3PageFree (void *)
SQLITE_PRIVATE void sqlite3MemSetDefault (void)
SQLITE_PRIVATE void sqlite3BenignMallocHooks (void(*)(void), void(*)(void))
SQLITE_PRIVATE int sqlite3HeapNearlyFull (void)
SQLITE_PRIVATE sqlite3_int64 sqlite3StatusValue (int)
SQLITE_PRIVATE void sqlite3StatusUp (int, int)
SQLITE_PRIVATE void sqlite3StatusDown (int, int)
SQLITE_PRIVATE void sqlite3StatusHighwater (int, int)
SQLITE_PRIVATE int sqlite3LookasideUsed (sqlite3 *, int *)
SQLITE_PRIVATE sqlite3_mutex * sqlite3Pcache1Mutex (void)
SQLITE_PRIVATE sqlite3_mutex * sqlite3MallocMutex (void)
SQLITE_PRIVATE int sqlite3IsNaN (double)
SQLITE_PRIVATE int sqlite3IsOverflow (double)
SQLITE_PRIVATE void sqlite3FpDecode (FpDecode *, double, int, int)
SQLITE_PRIVATE char * sqlite3MPrintf (sqlite3 *, const char *,...)
SQLITE_PRIVATE char * sqlite3VMPrintf (sqlite3 *, const char *, va_list)
SQLITE_PRIVATE void sqlite3SetString (char **, sqlite3 *, const char *)
SQLITE_PRIVATE void sqlite3ProgressCheck (Parse *)
SQLITE_PRIVATE void sqlite3ErrorMsg (Parse *, const char *,...)
SQLITE_PRIVATE int sqlite3ErrorToParser (sqlite3 *, int)
SQLITE_PRIVATE void sqlite3Dequote (char *)
SQLITE_PRIVATE void sqlite3DequoteExpr (Expr *)
SQLITE_PRIVATE void sqlite3DequoteToken (Token *)
SQLITE_PRIVATE void sqlite3DequoteNumber (Parse *, Expr *)
SQLITE_PRIVATE void sqlite3TokenInit (Token *, char *)
SQLITE_PRIVATE int sqlite3KeywordCode (const unsigned char *, int)
SQLITE_PRIVATE int sqlite3RunParser (Parse *, const char *)
SQLITE_PRIVATE void sqlite3FinishCoding (Parse *)
SQLITE_PRIVATE int sqlite3GetTempReg (Parse *)
SQLITE_PRIVATE void sqlite3ReleaseTempReg (Parse *, int)
SQLITE_PRIVATE int sqlite3GetTempRange (Parse *, int)
SQLITE_PRIVATE void sqlite3ReleaseTempRange (Parse *, int, int)
SQLITE_PRIVATE void sqlite3ClearTempRegCache (Parse *)
SQLITE_PRIVATE void sqlite3TouchRegister (Parse *, int)
SQLITE_PRIVATE Expr * sqlite3ExprAlloc (sqlite3 *, int, const Token *, int)
SQLITE_PRIVATE Expr * sqlite3Expr (sqlite3 *, int, const char *)
SQLITE_PRIVATE void sqlite3ExprAttachSubtrees (sqlite3 *, Expr *, Expr *, Expr *)
SQLITE_PRIVATE Expr * sqlite3PExpr (Parse *, int, Expr *, Expr *)
SQLITE_PRIVATE void sqlite3PExprAddSelect (Parse *, Expr *, Select *)
SQLITE_PRIVATE Expr * sqlite3ExprAnd (Parse *, Expr *, Expr *)
SQLITE_PRIVATE Expr * sqlite3ExprSimplifiedAndOr (Expr *)
SQLITE_PRIVATE Expr * sqlite3ExprFunction (Parse *, ExprList *, const Token *, int)
SQLITE_PRIVATE void sqlite3ExprAddFunctionOrderBy (Parse *, Expr *, ExprList *)
SQLITE_PRIVATE void sqlite3ExprOrderByAggregateError (Parse *, Expr *)
SQLITE_PRIVATE void sqlite3ExprFunctionUsable (Parse *, const Expr *, const FuncDef *)
SQLITE_PRIVATE void sqlite3ExprAssignVarNumber (Parse *, Expr *, u32)
SQLITE_PRIVATE void sqlite3ExprDelete (sqlite3 *, Expr *)
SQLITE_PRIVATE void sqlite3ExprDeleteGeneric (sqlite3 *, void *)
SQLITE_PRIVATE int sqlite3ExprDeferredDelete (Parse *, Expr *)
SQLITE_PRIVATE void sqlite3ExprUnmapAndDelete (Parse *, Expr *)
SQLITE_PRIVATE ExprList * sqlite3ExprListAppend (Parse *, ExprList *, Expr *)
SQLITE_PRIVATE ExprList * sqlite3ExprListAppendVector (Parse *, ExprList *, IdList *, Expr *)
SQLITE_PRIVATE Select * sqlite3ExprListToValues (Parse *, int, ExprList *)
SQLITE_PRIVATE void sqlite3ExprListSetSortOrder (ExprList *, int, int)
SQLITE_PRIVATE void sqlite3ExprListSetName (Parse *, ExprList *, const Token *, int)
SQLITE_PRIVATE void sqlite3ExprListSetSpan (Parse *, ExprList *, const char *, const char *)
SQLITE_PRIVATE void sqlite3ExprListDelete (sqlite3 *, ExprList *)
SQLITE_PRIVATE void sqlite3ExprListDeleteGeneric (sqlite3 *, void *)
SQLITE_PRIVATE u32 sqlite3ExprListFlags (const ExprList *)
SQLITE_PRIVATE int sqlite3IndexHasDuplicateRootPage (Index *)
SQLITE_PRIVATE int sqlite3Init (sqlite3 *, char **)
SQLITE_PRIVATE int sqlite3InitCallback (void *, int, char **, char **)
SQLITE_PRIVATE int sqlite3InitOne (sqlite3 *, int, char **, u32)
SQLITE_PRIVATE void sqlite3Pragma (Parse *, Token *, Token *, Token *, int)
SQLITE_PRIVATE Module * sqlite3PragmaVtabRegister (sqlite3 *, const char *zName)
SQLITE_PRIVATE void sqlite3ResetAllSchemasOfConnection (sqlite3 *)
SQLITE_PRIVATE void sqlite3ResetOneSchema (sqlite3 *, int)
SQLITE_PRIVATE void sqlite3CollapseDatabaseArray (sqlite3 *)
SQLITE_PRIVATE void sqlite3CommitInternalChanges (sqlite3 *)
SQLITE_PRIVATE void sqlite3ColumnSetExpr (Parse *, Table *, Column *, Expr *)
SQLITE_PRIVATE Expr * sqlite3ColumnExpr (Table *, Column *)
SQLITE_PRIVATE void sqlite3ColumnSetColl (sqlite3 *, Column *, const char *zColl)
SQLITE_PRIVATE const char * sqlite3ColumnColl (Column *)
SQLITE_PRIVATE void sqlite3DeleteColumnNames (sqlite3 *, Table *)
SQLITE_PRIVATE void sqlite3GenerateColumnNames (Parse *pParse, Select *pSelect)
SQLITE_PRIVATE int sqlite3ColumnsFromExprList (Parse *, ExprList *, i16 *, Column **)
SQLITE_PRIVATE void sqlite3SubqueryColumnTypes (Parse *, Table *, Select *, char)
SQLITE_PRIVATE Table * sqlite3ResultSetOfSelect (Parse *, Select *, char)
SQLITE_PRIVATE void sqlite3OpenSchemaTable (Parse *, int)
SQLITE_PRIVATE Index * sqlite3PrimaryKeyIndex (Table *)
SQLITE_PRIVATE i16 sqlite3TableColumnToIndex (Index *, i16)
SQLITE_PRIVATE i16 sqlite3TableColumnToStorage (Table *, i16)
SQLITE_PRIVATE i16 sqlite3StorageColumnToTable (Table *, i16)
SQLITE_PRIVATE void sqlite3StartTable (Parse *, Token *, Token *, int, int, int, int)
SQLITE_PRIVATE void sqlite3AddColumn (Parse *, Token, Token)
SQLITE_PRIVATE void sqlite3AddNotNull (Parse *, int)
SQLITE_PRIVATE void sqlite3AddPrimaryKey (Parse *, ExprList *, int, int, int)
SQLITE_PRIVATE void sqlite3AddCheckConstraint (Parse *, Expr *, const char *, const char *)
SQLITE_PRIVATE void sqlite3AddDefaultValue (Parse *, Expr *, const char *, const char *)
SQLITE_PRIVATE void sqlite3AddCollateType (Parse *, Token *)
SQLITE_PRIVATE void sqlite3AddGenerated (Parse *, Expr *, Token *)
SQLITE_PRIVATE void sqlite3EndTable (Parse *, Token *, Token *, u32, Select *)
SQLITE_PRIVATE void sqlite3AddReturning (Parse *, ExprList *)
SQLITE_PRIVATE int sqlite3ParseUri (const char *, const char *, unsigned int *, sqlite3_vfs **, char **, char **)
SQLITE_PRIVATE Btree * sqlite3DbNameToBtree (sqlite3 *, const char *)
SQLITE_PRIVATE int sqlite3FaultSim (int)
SQLITE_PRIVATE Bitvec * sqlite3BitvecCreate (u32)
SQLITE_PRIVATE int sqlite3BitvecTest (Bitvec *, u32)
SQLITE_PRIVATE int sqlite3BitvecTestNotNull (Bitvec *, u32)
SQLITE_PRIVATE int sqlite3BitvecSet (Bitvec *, u32)
SQLITE_PRIVATE void sqlite3BitvecClear (Bitvec *, u32, void *)
SQLITE_PRIVATE void sqlite3BitvecDestroy (Bitvec *)
SQLITE_PRIVATE u32 sqlite3BitvecSize (Bitvec *)
SQLITE_PRIVATE int sqlite3BitvecBuiltinTest (int, int *)
SQLITE_PRIVATE RowSet * sqlite3RowSetInit (sqlite3 *)
SQLITE_PRIVATE void sqlite3RowSetDelete (void *)
SQLITE_PRIVATE void sqlite3RowSetClear (void *)
SQLITE_PRIVATE void sqlite3RowSetInsert (RowSet *, i64)
SQLITE_PRIVATE int sqlite3RowSetTest (RowSet *, int iBatch, i64)
SQLITE_PRIVATE int sqlite3RowSetNext (RowSet *, i64 *)
SQLITE_PRIVATE void sqlite3CreateView (Parse *, Token *, Token *, Token *, ExprList *, Select *, int, int)
SQLITE_PRIVATE int sqlite3ViewGetColumnNames (Parse *, Table *)
SQLITE_PRIVATE void sqlite3DropTable (Parse *, SrcList *, int, int)
SQLITE_PRIVATE void sqlite3CodeDropTable (Parse *, Table *, int, int)
SQLITE_PRIVATE void sqlite3DeleteTable (sqlite3 *, Table *)
SQLITE_PRIVATE void sqlite3DeleteTableGeneric (sqlite3 *, void *)
SQLITE_PRIVATE void sqlite3FreeIndex (sqlite3 *, Index *)
SQLITE_PRIVATE void sqlite3AutoincrementBegin (Parse *pParse)
SQLITE_PRIVATE void sqlite3AutoincrementEnd (Parse *pParse)
SQLITE_PRIVATE void sqlite3Insert (Parse *, SrcList *, Select *, IdList *, int, Upsert *)
SQLITE_PRIVATE void sqlite3ComputeGeneratedColumns (Parse *, int, Table *)
SQLITE_PRIVATE void * sqlite3ArrayAllocate (sqlite3 *, void *, int, int *, int *)
SQLITE_PRIVATE IdList * sqlite3IdListAppend (Parse *, IdList *, Token *)
SQLITE_PRIVATE int sqlite3IdListIndex (IdList *, const char *)
SQLITE_PRIVATE SrcList * sqlite3SrcListEnlarge (Parse *, SrcList *, int, int)
SQLITE_PRIVATE SrcList * sqlite3SrcListAppendList (Parse *pParse, SrcList *p1, SrcList *p2)
SQLITE_PRIVATE SrcList * sqlite3SrcListAppend (Parse *, SrcList *, Token *, Token *)
SQLITE_PRIVATE SrcList * sqlite3SrcListAppendFromTerm (Parse *, SrcList *, Token *, Token *, Token *, Select *, OnOrUsing *)
SQLITE_PRIVATE void sqlite3SrcListIndexedBy (Parse *, SrcList *, Token *)
SQLITE_PRIVATE void sqlite3SrcListFuncArgs (Parse *, SrcList *, ExprList *)
SQLITE_PRIVATE int sqlite3IndexedByLookup (Parse *, SrcItem *)
SQLITE_PRIVATE void sqlite3SrcListShiftJoinType (Parse *, SrcList *)
SQLITE_PRIVATE void sqlite3SrcListAssignCursors (Parse *, SrcList *)
SQLITE_PRIVATE void sqlite3IdListDelete (sqlite3 *, IdList *)
SQLITE_PRIVATE void sqlite3ClearOnOrUsing (sqlite3 *, OnOrUsing *)
SQLITE_PRIVATE void sqlite3SrcListDelete (sqlite3 *, SrcList *)
SQLITE_PRIVATE Index * sqlite3AllocateIndexObject (sqlite3 *, i16, int, char **)
SQLITE_PRIVATE void sqlite3CreateIndex (Parse *, Token *, Token *, SrcList *, ExprList *, int, Token *, Expr *, int, int, u8)
SQLITE_PRIVATE void sqlite3DropIndex (Parse *, SrcList *, int)
SQLITE_PRIVATE int sqlite3Select (Parse *, Select *, SelectDest *)
SQLITE_PRIVATE Select * sqlite3SelectNew (Parse *, ExprList *, SrcList *, Expr *, ExprList *, Expr *, ExprList *, u32, Expr *)
SQLITE_PRIVATE void sqlite3SelectDelete (sqlite3 *, Select *)
SQLITE_PRIVATE void sqlite3SelectDeleteGeneric (sqlite3 *, void *)
SQLITE_PRIVATE Table * sqlite3SrcListLookup (Parse *, SrcList *)
SQLITE_PRIVATE int sqlite3IsReadOnly (Parse *, Table *, Trigger *)
SQLITE_PRIVATE void sqlite3OpenTable (Parse *, int iCur, int iDb, Table *, int)
SQLITE_PRIVATE Expr * sqlite3LimitWhere (Parse *, SrcList *, Expr *, ExprList *, Expr *, char *)
SQLITE_PRIVATE void sqlite3CodeChangeCount (Vdbe *, int, const char *)
SQLITE_PRIVATE void sqlite3DeleteFrom (Parse *, SrcList *, Expr *, ExprList *, Expr *)
SQLITE_PRIVATE void sqlite3Update (Parse *, SrcList *, ExprList *, Expr *, int, ExprList *, Expr *, Upsert *)
SQLITE_PRIVATE WhereInfo * sqlite3WhereBegin (Parse *, SrcList *, Expr *, ExprList *, ExprList *, Select *, u16, int)
SQLITE_PRIVATE void sqlite3WhereEnd (WhereInfo *)
SQLITE_PRIVATE LogEst sqlite3WhereOutputRowCount (WhereInfo *)
SQLITE_PRIVATE int sqlite3WhereIsDistinct (WhereInfo *)
SQLITE_PRIVATE int sqlite3WhereIsOrdered (WhereInfo *)
SQLITE_PRIVATE int sqlite3WhereOrderByLimitOptLabel (WhereInfo *)
SQLITE_PRIVATE void sqlite3WhereMinMaxOptEarlyOut (Vdbe *, WhereInfo *)
SQLITE_PRIVATE int sqlite3WhereIsSorted (WhereInfo *)
SQLITE_PRIVATE int sqlite3WhereContinueLabel (WhereInfo *)
SQLITE_PRIVATE int sqlite3WhereBreakLabel (WhereInfo *)
SQLITE_PRIVATE int sqlite3WhereOkOnePass (WhereInfo *, int *)
SQLITE_PRIVATE int sqlite3WhereUsesDeferredSeek (WhereInfo *)
SQLITE_PRIVATE void sqlite3ExprCodeLoadIndexColumn (Parse *, Index *, int, int, int)
SQLITE_PRIVATE int sqlite3ExprCodeGetColumn (Parse *, Table *, int, int, int, u8)
SQLITE_PRIVATE void sqlite3ExprCodeGetColumnOfTable (Vdbe *, Table *, int, int, int)
SQLITE_PRIVATE void sqlite3ExprCodeMove (Parse *, int, int, int)
SQLITE_PRIVATE void sqlite3ExprCode (Parse *, Expr *, int)
SQLITE_PRIVATE void sqlite3ExprCodeGeneratedColumn (Parse *, Table *, Column *, int)
SQLITE_PRIVATE void sqlite3ExprCodeCopy (Parse *, Expr *, int)
SQLITE_PRIVATE void sqlite3ExprCodeFactorable (Parse *, Expr *, int)
SQLITE_PRIVATE int sqlite3ExprCodeRunJustOnce (Parse *, Expr *, int)
SQLITE_PRIVATE int sqlite3ExprCodeTemp (Parse *, Expr *, int *)
SQLITE_PRIVATE int sqlite3ExprCodeTarget (Parse *, Expr *, int)
SQLITE_PRIVATE int sqlite3ExprCodeExprList (Parse *, ExprList *, int, int, u8)
SQLITE_PRIVATE void sqlite3ExprIfTrue (Parse *, Expr *, int, int)
SQLITE_PRIVATE void sqlite3ExprIfFalse (Parse *, Expr *, int, int)
SQLITE_PRIVATE void sqlite3ExprIfFalseDup (Parse *, Expr *, int, int)
SQLITE_PRIVATE Table * sqlite3FindTable (sqlite3 *, const char *, const char *)
SQLITE_PRIVATE Table * sqlite3LocateTable (Parse *, u32 flags, const char *, const char *)
SQLITE_PRIVATE const char * sqlite3PreferredTableName (const char *)
SQLITE_PRIVATE Table * sqlite3LocateTableItem (Parse *, u32 flags, SrcItem *)
SQLITE_PRIVATE Index * sqlite3FindIndex (sqlite3 *, const char *, const char *)
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteTable (sqlite3 *, int, const char *)
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteIndex (sqlite3 *, int, const char *)
SQLITE_PRIVATE void sqlite3Vacuum (Parse *, Token *, Expr *)
SQLITE_PRIVATE int sqlite3RunVacuum (char **, sqlite3 *, int, sqlite3_value *)
SQLITE_PRIVATE char * sqlite3NameFromToken (sqlite3 *, const Token *)
SQLITE_PRIVATE int sqlite3ExprCompare (const Parse *, const Expr *, const Expr *, int)
SQLITE_PRIVATE int sqlite3ExprCompareSkip (Expr *, Expr *, int)
SQLITE_PRIVATE int sqlite3ExprListCompare (const ExprList *, const ExprList *, int)
SQLITE_PRIVATE int sqlite3ExprImpliesExpr (const Parse *, const Expr *, const Expr *, int)
SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow (Expr *, int, int)
SQLITE_PRIVATE void sqlite3AggInfoPersistWalkerInit (Walker *, Parse *)
SQLITE_PRIVATE void sqlite3ExprAnalyzeAggregates (NameContext *, Expr *)
SQLITE_PRIVATE void sqlite3ExprAnalyzeAggList (NameContext *, ExprList *)
SQLITE_PRIVATE int sqlite3ExprCoveredByIndex (Expr *, int iCur, Index *pIdx)
SQLITE_PRIVATE int sqlite3ReferencesSrcList (Parse *, Expr *, SrcList *)
SQLITE_PRIVATE Vdbe * sqlite3GetVdbe (Parse *)
SQLITE_PRIVATE void sqlite3PrngSaveState (void)
SQLITE_PRIVATE void sqlite3PrngRestoreState (void)
SQLITE_PRIVATE void sqlite3RollbackAll (sqlite3 *, int)
SQLITE_PRIVATE void sqlite3CodeVerifySchema (Parse *, int)
SQLITE_PRIVATE void sqlite3CodeVerifyNamedSchema (Parse *, const char *zDb)
SQLITE_PRIVATE void sqlite3BeginTransaction (Parse *, int)
SQLITE_PRIVATE void sqlite3EndTransaction (Parse *, int)
SQLITE_PRIVATE void sqlite3Savepoint (Parse *, int, Token *)
SQLITE_PRIVATE void sqlite3CloseSavepoints (sqlite3 *)
SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie (sqlite3 *)
SQLITE_PRIVATE u32 sqlite3IsTrueOrFalse (const char *)
SQLITE_PRIVATE int sqlite3ExprIdToTrueFalse (Expr *)
SQLITE_PRIVATE int sqlite3ExprTruthValue (const Expr *)
SQLITE_PRIVATE int sqlite3ExprIsConstant (Parse *, Expr *)
SQLITE_PRIVATE int sqlite3ExprIsConstantOrFunction (Expr *, u8)
SQLITE_PRIVATE int sqlite3ExprIsConstantOrGroupBy (Parse *, Expr *, ExprList *)
SQLITE_PRIVATE int sqlite3ExprIsSingleTableConstraint (Expr *, const SrcList *, int, int)
SQLITE_PRIVATE int sqlite3ExprIsInteger (const Expr *, int *)
SQLITE_PRIVATE int sqlite3ExprCanBeNull (const Expr *)
SQLITE_PRIVATE int sqlite3ExprNeedsNoAffinityChange (const Expr *, char)
SQLITE_PRIVATE int sqlite3IsRowid (const char *)
SQLITE_PRIVATE const char * sqlite3RowidAlias (Table *pTab)
SQLITE_PRIVATE void sqlite3GenerateRowDelete (Parse *, Table *, Trigger *, int, int, int, i16, u8, u8, u8, int)
SQLITE_PRIVATE void sqlite3GenerateRowIndexDelete (Parse *, Table *, int, int, int *, int)
SQLITE_PRIVATE int sqlite3GenerateIndexKey (Parse *, Index *, int, int, int, int *, Index *, int)
SQLITE_PRIVATE void sqlite3ResolvePartIdxLabel (Parse *, int)
SQLITE_PRIVATE int sqlite3ExprReferencesUpdatedColumn (Expr *, int *, int)
SQLITE_PRIVATE void sqlite3GenerateConstraintChecks (Parse *, Table *, int *, int, int, int, int, u8, u8, int, int *, int *, Upsert *)
SQLITE_PRIVATE void sqlite3CompleteInsertion (Parse *, Table *, int, int, int, int *, int, int, int)
SQLITE_PRIVATE int sqlite3OpenTableAndIndices (Parse *, Table *, int, u8, int, u8 *, int *, int *)
SQLITE_PRIVATE void sqlite3BeginWriteOperation (Parse *, int, int)
SQLITE_PRIVATE void sqlite3MultiWrite (Parse *)
SQLITE_PRIVATE void sqlite3MayAbort (Parse *)
SQLITE_PRIVATE void sqlite3HaltConstraint (Parse *, int, int, char *, i8, u8)
SQLITE_PRIVATE void sqlite3UniqueConstraint (Parse *, int, Index *)
SQLITE_PRIVATE void sqlite3RowidConstraint (Parse *, int, Table *)
SQLITE_PRIVATE Expr * sqlite3ExprDup (sqlite3 *, const Expr *, int)
SQLITE_PRIVATE ExprList * sqlite3ExprListDup (sqlite3 *, const ExprList *, int)
SQLITE_PRIVATE SrcList * sqlite3SrcListDup (sqlite3 *, const SrcList *, int)
SQLITE_PRIVATE IdList * sqlite3IdListDup (sqlite3 *, const IdList *)
SQLITE_PRIVATE Select * sqlite3SelectDup (sqlite3 *, const Select *, int)
SQLITE_PRIVATE FuncDef * sqlite3FunctionSearch (int, const char *)
SQLITE_PRIVATE void sqlite3InsertBuiltinFuncs (FuncDef *, int)
SQLITE_PRIVATE FuncDef * sqlite3FindFunction (sqlite3 *, const char *, int, u8, u8)
SQLITE_PRIVATE void sqlite3QuoteValue (StrAccum *, sqlite3_value *)
SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions (void)
SQLITE_PRIVATE void sqlite3RegisterDateTimeFunctions (void)
SQLITE_PRIVATE void sqlite3RegisterJsonFunctions (void)
SQLITE_PRIVATE void sqlite3RegisterPerConnectionBuiltinFunctions (sqlite3 *)
SQLITE_PRIVATE int sqlite3JsonTableFunctions (sqlite3 *)
SQLITE_PRIVATE int sqlite3SafetyCheckOk (sqlite3 *)
SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk (sqlite3 *)
SQLITE_PRIVATE void sqlite3ChangeCookie (Parse *, int)
SQLITE_PRIVATE With * sqlite3WithDup (sqlite3 *db, With *p)
SQLITE_PRIVATE void sqlite3MaterializeView (Parse *, Table *, Expr *, ExprList *, Expr *, int)
SQLITE_PRIVATE void sqlite3BeginTrigger (Parse *, Token *, Token *, int, int, IdList *, SrcList *, Expr *, int, int)
SQLITE_PRIVATE void sqlite3FinishTrigger (Parse *, TriggerStep *, Token *)
SQLITE_PRIVATE void sqlite3DropTrigger (Parse *, SrcList *, int)
SQLITE_PRIVATE void sqlite3DropTriggerPtr (Parse *, Trigger *)
SQLITE_PRIVATE Trigger * sqlite3TriggersExist (Parse *, Table *, int, ExprList *, int *pMask)
SQLITE_PRIVATE Trigger * sqlite3TriggerList (Parse *, Table *)
SQLITE_PRIVATE void sqlite3CodeRowTrigger (Parse *, Trigger *, int, ExprList *, int, Table *, int, int, int)
SQLITE_PRIVATE void sqlite3CodeRowTriggerDirect (Parse *, Trigger *, Table *, int, int, int)
void sqliteViewTriggers(Parse*, Table*, Expr*, int, ExprList*)
SQLITE_PRIVATE void sqlite3DeleteTriggerStep (sqlite3 *, TriggerStep *)
SQLITE_PRIVATE TriggerStep * sqlite3TriggerSelectStep (sqlite3 *, Select *, const char *, const char *)
SQLITE_PRIVATE TriggerStep * sqlite3TriggerInsertStep (Parse *, Token *, IdList *, Select *, u8, Upsert *, const char *, const char *)
SQLITE_PRIVATE TriggerStep * sqlite3TriggerUpdateStep (Parse *, Token *, SrcList *, ExprList *, Expr *, u8, const char *, const char *)
SQLITE_PRIVATE TriggerStep * sqlite3TriggerDeleteStep (Parse *, Token *, Expr *, const char *, const char *)
SQLITE_PRIVATE void sqlite3DeleteTrigger (sqlite3 *, Trigger *)
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteTrigger (sqlite3 *, int, const char *)
SQLITE_PRIVATE u32 sqlite3TriggerColmask (Parse *, Trigger *, ExprList *, int, int, Table *, int)
SQLITE_PRIVATE SrcList * sqlite3TriggerStepSrc (Parse *, TriggerStep *)
SQLITE_PRIVATE int sqlite3JoinType (Parse *, Token *, Token *, Token *)
SQLITE_PRIVATE int sqlite3ColumnIndex (Table *pTab, const char *zCol)
SQLITE_PRIVATE void sqlite3SrcItemColumnUsed (SrcItem *, int)
SQLITE_PRIVATE void sqlite3SetJoinExpr (Expr *, int, u32)
SQLITE_PRIVATE void sqlite3CreateForeignKey (Parse *, ExprList *, Token *, ExprList *, int)
SQLITE_PRIVATE void sqlite3DeferForeignKey (Parse *, int)
SQLITE_PRIVATE void sqlite3AuthRead (Parse *, Expr *, Schema *, SrcList *)
SQLITE_PRIVATE int sqlite3AuthCheck (Parse *, int, const char *, const char *, const char *)
SQLITE_PRIVATE void sqlite3AuthContextPush (Parse *, AuthContext *, const char *)
SQLITE_PRIVATE void sqlite3AuthContextPop (AuthContext *)
SQLITE_PRIVATE int sqlite3AuthReadCol (Parse *, const char *, const char *, int)
SQLITE_PRIVATE int sqlite3DbIsNamed (sqlite3 *db, int iDb, const char *zName)
SQLITE_PRIVATE void sqlite3Attach (Parse *, Expr *, Expr *, Expr *)
SQLITE_PRIVATE void sqlite3Detach (Parse *, Expr *)
SQLITE_PRIVATE void sqlite3FixInit (DbFixer *, Parse *, int, const char *, const Token *)
SQLITE_PRIVATE int sqlite3FixSrcList (DbFixer *, SrcList *)
SQLITE_PRIVATE int sqlite3FixSelect (DbFixer *, Select *)
SQLITE_PRIVATE int sqlite3FixExpr (DbFixer *, Expr *)
SQLITE_PRIVATE int sqlite3FixTriggerStep (DbFixer *, TriggerStep *)
SQLITE_PRIVATE int sqlite3RealSameAsInt (double, sqlite3_int64)
SQLITE_PRIVATE i64 sqlite3RealToI64 (double)
SQLITE_PRIVATE int sqlite3Int64ToText (i64, char *)
SQLITE_PRIVATE int sqlite3AtoF (const char *z, double *, int, u8)
SQLITE_PRIVATE int sqlite3GetInt32 (const char *, int *)
SQLITE_PRIVATE int sqlite3GetUInt32 (const char *, u32 *)
SQLITE_PRIVATE int sqlite3Atoi (const char *)
SQLITE_PRIVATE int sqlite3Utf16ByteLen (const void *pData, int nChar)
SQLITE_PRIVATE int sqlite3Utf8CharLen (const char *pData, int nByte)
SQLITE_PRIVATE u32 sqlite3Utf8Read (const u8 **)
SQLITE_PRIVATE int sqlite3Utf8ReadLimited (const u8 *, int, u32 *)
SQLITE_PRIVATE LogEst sqlite3LogEst (u64)
SQLITE_PRIVATE LogEst sqlite3LogEstAdd (LogEst, LogEst)
SQLITE_PRIVATE LogEst sqlite3LogEstFromDouble (double)
SQLITE_PRIVATE u64 sqlite3LogEstToInt (LogEst)
SQLITE_PRIVATE VList * sqlite3VListAdd (sqlite3 *, VList *, const char *, int, int)
SQLITE_PRIVATE const char * sqlite3VListNumToName (VList *, int)
SQLITE_PRIVATE int sqlite3VListNameToNum (VList *, const char *, int)
SQLITE_PRIVATE int sqlite3PutVarint (unsigned char *, u64)
SQLITE_PRIVATE u8 sqlite3GetVarint (const unsigned char *, u64 *)
SQLITE_PRIVATE u8 sqlite3GetVarint32 (const unsigned char *, u32 *)
SQLITE_PRIVATE int sqlite3VarintLen (u64 v)
SQLITE_PRIVATE const char * sqlite3IndexAffinityStr (sqlite3 *, Index *)
SQLITE_PRIVATE char * sqlite3TableAffinityStr (sqlite3 *, const Table *)
SQLITE_PRIVATE void sqlite3TableAffinity (Vdbe *, Table *, int)
SQLITE_PRIVATE char sqlite3CompareAffinity (const Expr *pExpr, char aff2)
SQLITE_PRIVATE int sqlite3IndexAffinityOk (const Expr *pExpr, char idx_affinity)
SQLITE_PRIVATE char sqlite3TableColumnAffinity (const Table *, int)
SQLITE_PRIVATE char sqlite3ExprAffinity (const Expr *pExpr)
SQLITE_PRIVATE int sqlite3ExprDataType (const Expr *pExpr)
SQLITE_PRIVATE int sqlite3Atoi64 (const char *, i64 *, int, u8)
SQLITE_PRIVATE int sqlite3DecOrHexToI64 (const char *, i64 *)
SQLITE_PRIVATE void sqlite3ErrorWithMsg (sqlite3 *, int, const char *,...)
SQLITE_PRIVATE void sqlite3Error (sqlite3 *, int)
SQLITE_PRIVATE void sqlite3ErrorClear (sqlite3 *)
SQLITE_PRIVATE void sqlite3SystemError (sqlite3 *, int)
SQLITE_PRIVATE void * sqlite3HexToBlob (sqlite3 *, const char *z, int n)
SQLITE_PRIVATE u8 sqlite3HexToInt (int h)
SQLITE_PRIVATE int sqlite3TwoPartName (Parse *, Token *, Token *, Token **)
SQLITE_PRIVATE int sqlite3MemdbInit (void)
SQLITE_PRIVATE int sqlite3IsMemdb (const sqlite3_vfs *)
SQLITE_PRIVATE const char * sqlite3ErrStr (int)
SQLITE_PRIVATE int sqlite3ReadSchema (Parse *pParse)
SQLITE_PRIVATE CollSeq * sqlite3FindCollSeq (sqlite3 *, u8 enc, const char *, int)
SQLITE_PRIVATE int sqlite3IsBinary (const CollSeq *)
SQLITE_PRIVATE CollSeq * sqlite3LocateCollSeq (Parse *pParse, const char *zName)
SQLITE_PRIVATE void sqlite3SetTextEncoding (sqlite3 *db, u8)
SQLITE_PRIVATE CollSeq * sqlite3ExprCollSeq (Parse *pParse, const Expr *pExpr)
SQLITE_PRIVATE CollSeq * sqlite3ExprNNCollSeq (Parse *pParse, const Expr *pExpr)
SQLITE_PRIVATE int sqlite3ExprCollSeqMatch (Parse *, const Expr *, const Expr *)
SQLITE_PRIVATE Expr * sqlite3ExprAddCollateToken (const Parse *pParse, Expr *, const Token *, int)
SQLITE_PRIVATE Expr * sqlite3ExprAddCollateString (const Parse *, Expr *, const char *)
SQLITE_PRIVATE Expr * sqlite3ExprSkipCollate (Expr *)
SQLITE_PRIVATE Expr * sqlite3ExprSkipCollateAndLikely (Expr *)
SQLITE_PRIVATE int sqlite3CheckCollSeq (Parse *, CollSeq *)
SQLITE_PRIVATE int sqlite3WritableSchema (sqlite3 *)
SQLITE_PRIVATE int sqlite3CheckObjectName (Parse *, const char *, const char *, const char *)
SQLITE_PRIVATE void sqlite3VdbeSetChanges (sqlite3 *, i64)
SQLITE_PRIVATE int sqlite3AddInt64 (i64 *, i64)
SQLITE_PRIVATE int sqlite3SubInt64 (i64 *, i64)
SQLITE_PRIVATE int sqlite3MulInt64 (i64 *, i64)
SQLITE_PRIVATE int sqlite3AbsInt32 (int)
SQLITE_PRIVATE u8 sqlite3GetBoolean (const char *z, u8)
SQLITE_PRIVATE const void * sqlite3ValueText (sqlite3_value *, u8)
SQLITE_PRIVATE int sqlite3ValueIsOfClass (const sqlite3_value *, void(*)(void *))
SQLITE_PRIVATE int sqlite3ValueBytes (sqlite3_value *, u8)
SQLITE_PRIVATE void sqlite3ValueSetStr (sqlite3_value *, int, const void *, u8, void(*)(void *))
SQLITE_PRIVATE void sqlite3ValueSetNull (sqlite3_value *)
SQLITE_PRIVATE void sqlite3ValueFree (sqlite3_value *)
SQLITE_PRIVATE void sqlite3ResultIntReal (sqlite3_context *)
SQLITE_PRIVATE sqlite3_value * sqlite3ValueNew (sqlite3 *)
SQLITE_PRIVATE char * sqlite3Utf16to8 (sqlite3 *, const void *, int, u8)
SQLITE_PRIVATE int sqlite3ValueFromExpr (sqlite3 *, const Expr *, u8, u8, sqlite3_value **)
SQLITE_PRIVATE void sqlite3ValueApplyAffinity (sqlite3_value *, u8, u8)
SQLITE_PRIVATE void sqlite3RootPageMoved (sqlite3 *, int, Pgno, Pgno)
SQLITE_PRIVATE void sqlite3Reindex (Parse *, Token *, Token *)
SQLITE_PRIVATE void sqlite3AlterFunctions (void)
SQLITE_PRIVATE void sqlite3AlterRenameTable (Parse *, SrcList *, Token *)
SQLITE_PRIVATE void sqlite3AlterRenameColumn (Parse *, SrcList *, Token *, Token *)
SQLITE_PRIVATE int sqlite3GetToken (const unsigned char *, int *)
SQLITE_PRIVATE void sqlite3NestedParse (Parse *, const char *,...)
SQLITE_PRIVATE void sqlite3ExpirePreparedStatements (sqlite3 *, int)
SQLITE_PRIVATE void sqlite3CodeRhsOfIN (Parse *, Expr *, int)
SQLITE_PRIVATE int sqlite3CodeSubselect (Parse *, Expr *)
SQLITE_PRIVATE void sqlite3SelectPrep (Parse *, Select *, NameContext *)
SQLITE_PRIVATE int sqlite3ExpandSubquery (Parse *, SrcItem *)
SQLITE_PRIVATE void sqlite3SelectWrongNumTermsError (Parse *pParse, Select *p)
SQLITE_PRIVATE int sqlite3MatchEName (const struct ExprList_item *, const char *, const char *, const char *, int *)
SQLITE_PRIVATE Bitmask sqlite3ExprColUsed (Expr *)
SQLITE_PRIVATE u8 sqlite3StrIHash (const char *)
SQLITE_PRIVATE int sqlite3ResolveExprNames (NameContext *, Expr *)
SQLITE_PRIVATE int sqlite3ResolveExprListNames (NameContext *, ExprList *)
SQLITE_PRIVATE void sqlite3ResolveSelectNames (Parse *, Select *, NameContext *)
SQLITE_PRIVATE int sqlite3ResolveSelfReference (Parse *, Table *, int, Expr *, ExprList *)
SQLITE_PRIVATE int sqlite3ResolveOrderGroupBy (Parse *, Select *, ExprList *, const char *)
SQLITE_PRIVATE void sqlite3ColumnDefault (Vdbe *, Table *, int, int)
SQLITE_PRIVATE void sqlite3AlterFinishAddColumn (Parse *, Token *)
SQLITE_PRIVATE void sqlite3AlterBeginAddColumn (Parse *, SrcList *)
SQLITE_PRIVATE void sqlite3AlterDropColumn (Parse *, SrcList *, const Token *)
SQLITE_PRIVATE const void * sqlite3RenameTokenMap (Parse *, const void *, const Token *)
SQLITE_PRIVATE void sqlite3RenameTokenRemap (Parse *, const void *pTo, const void *pFrom)
SQLITE_PRIVATE void sqlite3RenameExprUnmap (Parse *, Expr *)
SQLITE_PRIVATE void sqlite3RenameExprlistUnmap (Parse *, ExprList *)
SQLITE_PRIVATE CollSeq * sqlite3GetCollSeq (Parse *, u8, CollSeq *, const char *)
SQLITE_PRIVATE char sqlite3AffinityType (const char *, Column *)
SQLITE_PRIVATE void sqlite3Analyze (Parse *, Token *, Token *)
SQLITE_PRIVATE int sqlite3InvokeBusyHandler (BusyHandler *)
SQLITE_PRIVATE int sqlite3FindDb (sqlite3 *, Token *)
SQLITE_PRIVATE int sqlite3FindDbName (sqlite3 *, const char *)
SQLITE_PRIVATE int sqlite3AnalysisLoad (sqlite3 *, int iDB)
SQLITE_PRIVATE void sqlite3DeleteIndexSamples (sqlite3 *, Index *)
SQLITE_PRIVATE void sqlite3DefaultRowEst (Index *)
SQLITE_PRIVATE void sqlite3RegisterLikeFunctions (sqlite3 *, int)
SQLITE_PRIVATE int sqlite3IsLikeFunction (sqlite3 *, Expr *, int *, char *)
SQLITE_PRIVATE void sqlite3SchemaClear (void *)
SQLITE_PRIVATE Schema * sqlite3SchemaGet (sqlite3 *, Btree *)
SQLITE_PRIVATE int sqlite3SchemaToIndex (sqlite3 *db, Schema *)
SQLITE_PRIVATE KeyInfo * sqlite3KeyInfoAlloc (sqlite3 *, int, int)
SQLITE_PRIVATE void sqlite3KeyInfoUnref (KeyInfo *)
SQLITE_PRIVATE KeyInfo * sqlite3KeyInfoRef (KeyInfo *)
SQLITE_PRIVATE KeyInfo * sqlite3KeyInfoOfIndex (Parse *, Index *)
SQLITE_PRIVATE KeyInfo * sqlite3KeyInfoFromExprList (Parse *, ExprList *, int, int)
SQLITE_PRIVATE const char * sqlite3SelectOpName (int)
SQLITE_PRIVATE int sqlite3HasExplicitNulls (Parse *, ExprList *)
SQLITE_PRIVATE int sqlite3CreateFunc (sqlite3 *, const char *, int, int, void *, void(*)(sqlite3_context *, int, sqlite3_value **), void(*)(sqlite3_context *, int, sqlite3_value **), void(*)(sqlite3_context *), void(*)(sqlite3_context *), void(*)(sqlite3_context *, int, sqlite3_value **), FuncDestructor *pDestructor)
SQLITE_PRIVATE void sqlite3NoopDestructor (void *)
SQLITE_PRIVATE void * sqlite3OomFault (sqlite3 *)
SQLITE_PRIVATE void sqlite3OomClear (sqlite3 *)
SQLITE_PRIVATE int sqlite3ApiExit (sqlite3 *db, int)
SQLITE_PRIVATE int sqlite3OpenTempDatabase (Parse *)
SQLITE_PRIVATE char * sqlite3RCStrRef (char *)
SQLITE_PRIVATE void sqlite3RCStrUnref (void *)
SQLITE_PRIVATE char * sqlite3RCStrNew (u64)
SQLITE_PRIVATE char * sqlite3RCStrResize (char *, u64)
SQLITE_PRIVATE void sqlite3StrAccumInit (StrAccum *, sqlite3 *, char *, int, int)
SQLITE_PRIVATE int sqlite3StrAccumEnlarge (StrAccum *, i64)
SQLITE_PRIVATE char * sqlite3StrAccumFinish (StrAccum *)
SQLITE_PRIVATE void sqlite3StrAccumSetError (StrAccum *, u8)
SQLITE_PRIVATE void sqlite3ResultStrAccum (sqlite3_context *, StrAccum *)
SQLITE_PRIVATE void sqlite3SelectDestInit (SelectDest *, int, int)
SQLITE_PRIVATE Expr * sqlite3CreateColumnExpr (sqlite3 *, SrcList *, int, int)
SQLITE_PRIVATE void sqlite3RecordErrorByteOffset (sqlite3 *, const char *)
SQLITE_PRIVATE void sqlite3RecordErrorOffsetOfExpr (sqlite3 *, const Expr *)
SQLITE_PRIVATE void sqlite3BackupRestart (sqlite3_backup *)
SQLITE_PRIVATE void sqlite3BackupUpdate (sqlite3_backup *, Pgno, const u8 *)
SQLITE_PRIVATE int sqlite3ExprCheckIN (Parse *, Expr *)
SQLITE_PRIVATE void sqlite3Parser (void *, int, Token)
SQLITE_PRIVATE int sqlite3ParserFallback (int)
SQLITE_PRIVATE void sqlite3AutoLoadExtensions (sqlite3 *)
SQLITE_PRIVATE void sqlite3TableLock (Parse *, int, Pgno, u8, const char *)
SQLITE_PRIVATE void sqlite3VtabClear (sqlite3 *db, Table *)
SQLITE_PRIVATE void sqlite3VtabDisconnect (sqlite3 *db, Table *p)
SQLITE_PRIVATE int sqlite3VtabSync (sqlite3 *db, Vdbe *)
SQLITE_PRIVATE int sqlite3VtabRollback (sqlite3 *db)
SQLITE_PRIVATE int sqlite3VtabCommit (sqlite3 *db)
SQLITE_PRIVATE void sqlite3VtabLock (VTable *)
SQLITE_PRIVATE void sqlite3VtabUnlock (VTable *)
SQLITE_PRIVATE void sqlite3VtabModuleUnref (sqlite3 *, Module *)
SQLITE_PRIVATE void sqlite3VtabUnlockList (sqlite3 *)
SQLITE_PRIVATE int sqlite3VtabSavepoint (sqlite3 *, int, int)
SQLITE_PRIVATE void sqlite3VtabImportErrmsg (Vdbe *, sqlite3_vtab *)
SQLITE_PRIVATE VTable * sqlite3GetVTable (sqlite3 *, Table *)
SQLITE_PRIVATE Module * sqlite3VtabCreateModule (sqlite3 *, const char *, const sqlite3_module *, void *, void(*)(void *))
SQLITE_PRIVATE int sqlite3ReadOnlyShadowTables (sqlite3 *db)
SQLITE_PRIVATE int sqlite3ShadowTableName (sqlite3 *db, const char *zName)
SQLITE_PRIVATE int sqlite3IsShadowTableOf (sqlite3 *, Table *, const char *)
SQLITE_PRIVATE void sqlite3MarkAllShadowTablesOf (sqlite3 *, Table *)
SQLITE_PRIVATE int sqlite3VtabEponymousTableInit (Parse *, Module *)
SQLITE_PRIVATE void sqlite3VtabEponymousTableClear (sqlite3 *, Module *)
SQLITE_PRIVATE void sqlite3VtabMakeWritable (Parse *, Table *)
SQLITE_PRIVATE void sqlite3VtabBeginParse (Parse *, Token *, Token *, Token *, int)
SQLITE_PRIVATE void sqlite3VtabFinishParse (Parse *, Token *)
SQLITE_PRIVATE void sqlite3VtabArgInit (Parse *)
SQLITE_PRIVATE void sqlite3VtabArgExtend (Parse *, Token *)
SQLITE_PRIVATE int sqlite3VtabCallCreate (sqlite3 *, int, const char *, char **)
SQLITE_PRIVATE int sqlite3VtabCallConnect (Parse *, Table *)
SQLITE_PRIVATE int sqlite3VtabCallDestroy (sqlite3 *, int, const char *)
SQLITE_PRIVATE int sqlite3VtabBegin (sqlite3 *, VTable *)
SQLITE_PRIVATE FuncDef * sqlite3VtabOverloadFunction (sqlite3 *, FuncDef *, int nArg, Expr *)
SQLITE_PRIVATE void sqlite3VtabUsesAllSchemas (Parse *)
SQLITE_PRIVATE sqlite3_int64 sqlite3StmtCurrentTime (sqlite3_context *)
SQLITE_PRIVATE int sqlite3VdbeParameterIndex (Vdbe *, const char *, int)
SQLITE_PRIVATE int sqlite3TransferBindings (sqlite3_stmt *, sqlite3_stmt *)
SQLITE_PRIVATE void sqlite3ParseObjectInit (Parse *, sqlite3 *)
SQLITE_PRIVATE void sqlite3ParseObjectReset (Parse *)
SQLITE_PRIVATE void * sqlite3ParserAddCleanup (Parse *, void(*)(sqlite3 *, void *), void *)
SQLITE_PRIVATE int sqlite3Reprepare (Vdbe *)
SQLITE_PRIVATE void sqlite3ExprListCheckLength (Parse *, ExprList *, const char *)
SQLITE_PRIVATE CollSeq * sqlite3ExprCompareCollSeq (Parse *, const Expr *)
SQLITE_PRIVATE CollSeq * sqlite3BinaryCompareCollSeq (Parse *, const Expr *, const Expr *)
SQLITE_PRIVATE int sqlite3TempInMemory (const sqlite3 *)
SQLITE_PRIVATE const char * sqlite3JournalModename (int)
SQLITE_PRIVATE Cte * sqlite3CteNew (Parse *, Token *, ExprList *, Select *, u8)
SQLITE_PRIVATE void sqlite3CteDelete (sqlite3 *, Cte *)
SQLITE_PRIVATE With * sqlite3WithAdd (Parse *, With *, Cte *)
SQLITE_PRIVATE void sqlite3WithDelete (sqlite3 *, With *)
SQLITE_PRIVATE void sqlite3WithDeleteGeneric (sqlite3 *, void *)
SQLITE_PRIVATE With * sqlite3WithPush (Parse *, With *, u8)
SQLITE_PRIVATE Upsert * sqlite3UpsertNew (sqlite3 *, ExprList *, Expr *, ExprList *, Expr *, Upsert *)
SQLITE_PRIVATE void sqlite3UpsertDelete (sqlite3 *, Upsert *)
SQLITE_PRIVATE Upsert * sqlite3UpsertDup (sqlite3 *, Upsert *)
SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget (Parse *, SrcList *, Upsert *, Upsert *)
SQLITE_PRIVATE void sqlite3UpsertDoUpdate (Parse *, Upsert *, Table *, Index *, int)
SQLITE_PRIVATE Upsert * sqlite3UpsertOfIndex (Upsert *, Index *)
SQLITE_PRIVATE int sqlite3UpsertNextIsIPK (Upsert *)
SQLITE_PRIVATE void sqlite3FkCheck (Parse *, Table *, int, int, int *, int)
SQLITE_PRIVATE void sqlite3FkDropTable (Parse *, SrcList *, Table *)
SQLITE_PRIVATE void sqlite3FkActions (Parse *, Table *, ExprList *, int, int *, int)
SQLITE_PRIVATE int sqlite3FkRequired (Parse *, Table *, int *, int)
SQLITE_PRIVATE u32 sqlite3FkOldmask (Parse *, Table *)
SQLITE_PRIVATE FKey * sqlite3FkReferences (Table *)
SQLITE_PRIVATE void sqlite3FkClearTriggerCache (sqlite3 *, int)
SQLITE_PRIVATE void sqlite3FkDelete (sqlite3 *, Table *)
SQLITE_PRIVATE int sqlite3FkLocateIndex (Parse *, Table *, FKey *, Index **, int **)
SQLITE_PRIVATE void sqlite3BeginBenignMalloc (void)
SQLITE_PRIVATE void sqlite3EndBenignMalloc (void)
SQLITE_PRIVATE int sqlite3FindInIndex (Parse *, Expr *, u32, int *, int *, int *)
SQLITE_PRIVATE int sqlite3JournalOpen (sqlite3_vfs *, const char *, sqlite3_file *, int, int)
SQLITE_PRIVATE int sqlite3JournalSize (sqlite3_vfs *)
SQLITE_PRIVATE int sqlite3JournalIsInMemory (sqlite3_file *p)
SQLITE_PRIVATE void sqlite3MemJournalOpen (sqlite3_file *)
SQLITE_PRIVATE void sqlite3ExprSetHeightAndFlags (Parse *pParse, Expr *p)
SQLITE_PRIVATE void sqlite3ExprSetErrorOffset (Expr *, int)
SQLITE_PRIVATE u32 sqlite3Get4byte (const u8 *)
SQLITE_PRIVATE void sqlite3Put4byte (u8 *, u32)
SQLITE_PRIVATE int sqlite3ExprVectorSize (const Expr *pExpr)
SQLITE_PRIVATE int sqlite3ExprIsVector (const Expr *pExpr)
SQLITE_PRIVATE Expr * sqlite3VectorFieldSubexpr (Expr *, int)
SQLITE_PRIVATE Expr * sqlite3ExprForVectorField (Parse *, Expr *, int, int)
SQLITE_PRIVATE void sqlite3VectorErrorMsg (Parse *, Expr *)
SQLITE_PRIVATE const char ** sqlite3CompileOptions (int *pnOpt)
SQLITE_PRIVATE void sqlite3VdbeError (Vdbe *, const char *,...)
SQLITE_PRIVATE void sqlite3VdbeFreeCursor (Vdbe *, VdbeCursor *)
SQLITE_PRIVATE void sqlite3VdbeFreeCursorNN (Vdbe *, VdbeCursor *)
void sqliteVdbePopStack(Vdbe*, int)
SQLITE_PRIVATE int SQLITE_NOINLINE sqlite3VdbeHandleMovedCursor (VdbeCursor *p)
SQLITE_PRIVATE int SQLITE_NOINLINE sqlite3VdbeFinishMoveto (VdbeCursor *)
SQLITE_PRIVATE int sqlite3VdbeCursorRestore (VdbeCursor *)
SQLITE_PRIVATE u32 sqlite3VdbeSerialTypeLen (u32)
SQLITE_PRIVATE u8 sqlite3VdbeOneByteSerialTypeLen (u8)
SQLITE_PRIVATE void sqlite3VdbeSerialGet (const unsigned char *, u32, Mem *)
SQLITE_PRIVATE void sqlite3VdbeDeleteAuxData (sqlite3 *, AuxData **, int, int)
int sqlite2BtreeKeyCompare(BtCursor*, const void*, int, int, int*)
SQLITE_PRIVATE int sqlite3VdbeIdxKeyCompare (sqlite3 *, VdbeCursor *, UnpackedRecord *, int *)
SQLITE_PRIVATE int sqlite3VdbeIdxRowid (sqlite3 *, BtCursor *, i64 *)
SQLITE_PRIVATE int sqlite3VdbeExec (Vdbe *)
SQLITE_PRIVATE int sqlite3VdbeNextOpcode (Vdbe *, Mem *, int, int *, int *, Op **)
SQLITE_PRIVATE char * sqlite3VdbeDisplayP4 (sqlite3 *, Op *)
SQLITE_PRIVATE int sqlite3VdbeList (Vdbe *)
SQLITE_PRIVATE int sqlite3VdbeHalt (Vdbe *)
SQLITE_PRIVATE int sqlite3VdbeChangeEncoding (Mem *, int)
SQLITE_PRIVATE int sqlite3VdbeMemTooBig (Mem *)
SQLITE_PRIVATE int sqlite3VdbeMemCopy (Mem *, const Mem *)
SQLITE_PRIVATE void sqlite3VdbeMemShallowCopy (Mem *, const Mem *, int)
SQLITE_PRIVATE void sqlite3VdbeMemMove (Mem *, Mem *)
SQLITE_PRIVATE int sqlite3VdbeMemNulTerminate (Mem *)
SQLITE_PRIVATE int sqlite3VdbeMemSetStr (Mem *, const char *, i64, u8, void(*)(void *))
SQLITE_PRIVATE void sqlite3VdbeMemSetInt64 (Mem *, i64)
SQLITE_PRIVATE void sqlite3VdbeMemSetDouble (Mem *, double)
SQLITE_PRIVATE void sqlite3VdbeMemSetPointer (Mem *, void *, const char *, void(*)(void *))
SQLITE_PRIVATE void sqlite3VdbeMemInit (Mem *, sqlite3 *, u16)
SQLITE_PRIVATE void sqlite3VdbeMemSetNull (Mem *)
SQLITE_PRIVATE void sqlite3VdbeMemSetZeroBlob (Mem *, int)
SQLITE_PRIVATE int sqlite3VdbeMemSetRowSet (Mem *)
SQLITE_PRIVATE void sqlite3VdbeMemZeroTerminateIfAble (Mem *)
SQLITE_PRIVATE int sqlite3VdbeMemMakeWriteable (Mem *)
SQLITE_PRIVATE int sqlite3VdbeMemStringify (Mem *, u8, u8)
SQLITE_PRIVATE int sqlite3IntFloatCompare (i64, double)
SQLITE_PRIVATE i64 sqlite3VdbeIntValue (const Mem *)
SQLITE_PRIVATE int sqlite3VdbeMemIntegerify (Mem *)
SQLITE_PRIVATE double sqlite3VdbeRealValue (Mem *)
SQLITE_PRIVATE int sqlite3VdbeBooleanValue (Mem *, int ifNull)
SQLITE_PRIVATE void sqlite3VdbeIntegerAffinity (Mem *)
SQLITE_PRIVATE int sqlite3VdbeMemRealify (Mem *)
SQLITE_PRIVATE int sqlite3VdbeMemNumerify (Mem *)
SQLITE_PRIVATE int sqlite3VdbeMemCast (Mem *, u8, u8)
SQLITE_PRIVATE int sqlite3VdbeMemFromBtree (BtCursor *, u32, u32, Mem *)
SQLITE_PRIVATE int sqlite3VdbeMemFromBtreeZeroOffset (BtCursor *, u32, Mem *)
SQLITE_PRIVATE void sqlite3VdbeMemRelease (Mem *p)
SQLITE_PRIVATE void sqlite3VdbeMemReleaseMalloc (Mem *p)
SQLITE_PRIVATE int sqlite3VdbeMemFinalize (Mem *, FuncDef *)
SQLITE_PRIVATE int sqlite3VdbeMemAggValue (Mem *, Mem *, FuncDef *)
SQLITE_PRIVATE const char * sqlite3OpcodeName (int)
SQLITE_PRIVATE int sqlite3VdbeMemGrow (Mem *pMem, int n, int preserve)
SQLITE_PRIVATE int sqlite3VdbeMemClearAndResize (Mem *pMem, int n)
SQLITE_PRIVATE int sqlite3VdbeCloseStatement (Vdbe *, int)
SQLITE_PRIVATE void sqlite3VdbeFrameMemDel (void *)
SQLITE_PRIVATE void sqlite3VdbeFrameDelete (VdbeFrame *)
SQLITE_PRIVATE int sqlite3VdbeFrameRestore (VdbeFrame *)
SQLITE_PRIVATE int sqlite3VdbeTransferError (Vdbe *p)
SQLITE_PRIVATE int sqlite3VdbeSorterInit (sqlite3 *, int, VdbeCursor *)
SQLITE_PRIVATE void sqlite3VdbeSorterReset (sqlite3 *, VdbeSorter *)
SQLITE_PRIVATE void sqlite3VdbeSorterClose (sqlite3 *, VdbeCursor *)
SQLITE_PRIVATE int sqlite3VdbeSorterRowkey (const VdbeCursor *, Mem *)
SQLITE_PRIVATE int sqlite3VdbeSorterNext (sqlite3 *, const VdbeCursor *)
SQLITE_PRIVATE int sqlite3VdbeSorterRewind (const VdbeCursor *, int *)
SQLITE_PRIVATE int sqlite3VdbeSorterWrite (const VdbeCursor *, Mem *)
SQLITE_PRIVATE int sqlite3VdbeSorterCompare (const VdbeCursor *, Mem *, int, int *)
SQLITE_PRIVATE void sqlite3VdbeValueListFree (void *)
SQLITE_PRIVATE void sqlite3VdbeEnter (Vdbe *)
SQLITE_PRIVATE int sqlite3VdbeCheckFk (Vdbe *, int)
SQLITE_PRIVATE int sqlite3VdbeMemTranslate (Mem *, u8)
SQLITE_PRIVATE int sqlite3VdbeMemHandleBom (Mem *pMem)
SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob (Mem *)
static u32 countLookasideSlots(LookasideSlot *p)
static int getDigits(const char *zDate, const char *zFormat, ...)
static int parseTimezone(const char *zDate, DateTime *p)
static int parseHhMmSs(const char *zDate, DateTime *p)
static void datetimeError(DateTime *p)
static void computeJD(DateTime *p)
static void computeFloor(DateTime *p)
static int parseYyyyMmDd(const char *zDate, DateTime *p)
static void clearYMD_HMS_TZ(DateTime *p)
static int setDateTimeToCurrent(sqlite3_context *context, DateTime *p)
static void setRawDateNumber(DateTime *p, double r)
static int parseDateOrTime(sqlite3_context *context, const char *zDate, DateTime *p)
static int validJulianDay(sqlite3_int64 iJD)
static void computeYMD(DateTime *p)
static void computeHMS(DateTime *p)
static void computeYMD_HMS(DateTime *p)
static int osLocaltime(time_t *t, struct tm *pTm)
static int toLocaltime(DateTime *p, sqlite3_context *pCtx)
static void autoAdjustDate(DateTime *p)
static int parseModifier(sqlite3_context *pCtx, const char *z, int n, DateTime *p, int idx)
static int isDate(sqlite3_context *context, int argc, sqlite3_value **argv, DateTime *p)
static void juliandayFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void unixepochFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void datetimeFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void timeFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void dateFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static int daysAfterJan01(DateTime *pDate)
static int daysAfterMonday(DateTime *pDate)
static int daysAfterSunday(DateTime *pDate)
static void strftimeFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void ctimeFunc(sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
static void cdateFunc(sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
static void timediffFunc(sqlite3_context *context, int NotUsed1, sqlite3_value **argv)
static void ctimestampFunc(sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
static void vfsUnlink(sqlite3_vfs *pVfs)
static void *sqlite3MemMalloc(int nByte)
static void sqlite3MemFree(void *pPrior)
static int sqlite3MemSize(void *pPrior)
static void *sqlite3MemRealloc(void *pPrior, int nByte)
static int sqlite3MemRoundup(int n)
static int sqlite3MemInit(void *NotUsed)
static void sqlite3MemShutdown(void *NotUsed)
SQLITE_API int sqlite3_memory_alarm (void(*xCallback)(void *pArg, sqlite3_int64 used, int N), void *pArg, sqlite3_int64 iThreshold)
static void sqlite3MallocAlarm(int nByte)
static void mallocWithAlarm(int n, void **pp)
static int isLookaside(sqlite3 *db, const void *p)
static int lookasideMallocSize(sqlite3 *db, const void *p)
static SQLITE_NOINLINE void measureAllocationSize (sqlite3 *db, void *p)
static SQLITE_NOINLINE void * dbMallocRawFinish (sqlite3 *db, u64 n)
static SQLITE_NOINLINE void * dbReallocFinish (sqlite3 *db, void *p, u64 n)
static SQLITE_NOINLINE int apiHandleError (sqlite3 *db, int rc)
static sqlite3_int64 getIntArg(PrintfArguments *p)
static double getDoubleArg(PrintfArguments *p)
static char *getTextArg(PrintfArguments *p)
static char *printfTempBuf(sqlite3_str *pAccum, sqlite3_int64 n)
static void SQLITE_NOINLINE enlargeAndAppend (StrAccum *p, const char *z, int N)
static SQLITE_NOINLINE char * strAccumFinishRealloc (StrAccum *p)
static void renderLogMsg(int iErrCode, const char *zFormat, va_list ap)
static void chacha_block(u32 *out, const u32 *in)
SQLITE_PRIVATE u32 sqlite3Utf8Read (const unsigned char **pz)
static SQLITE_NOINLINE void sqlite3ErrorFinish (sqlite3 *db, int err_code)
static void dekkerMul2(volatile double *x, double y, double yy)
static int compare2pow63(const char *zNum, int incr)
static int SQLITE_NOINLINE putVarint64 (unsigned char *p, u64 v)
SQLITE_PRIVATE void sqlite3Put4byte (unsigned char *p, u32 v)
static void logBadConnection(const char *zType)
static unsigned int strHash(const char *z)
static void insertElement(Hash *pH, struct _ht *pEntry, HashElem *pNew)
static int rehash(Hash *pH, unsigned int new_size)
static HashElem *findElementWithHash(const Hash *pH, const char *pKey, unsigned int *pHash)
static void removeElementGivenHash(Hash *pH, HashElem *elem, unsigned int h)
static int memdbClose(sqlite3_file*)
static int memdbRead(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst)
static int memdbWrite(sqlite3_file*, const void*, int iAmt, sqlite3_int64 iOfst)
static int memdbTruncate(sqlite3_file*, sqlite3_int64 size)
static int memdbSync(sqlite3_file*, int flags)
static int memdbFileSize(sqlite3_file*, sqlite3_int64 *pSize)
static int memdbLock(sqlite3_file*, int)
static int memdbUnlock(sqlite3_file*, int)
static int memdbFileControl(sqlite3_file*, int op, void *pArg)
static int memdbDeviceCharacteristics(sqlite3_file*)
static int memdbFetch(sqlite3_file*, sqlite3_int64 iOfst, int iAmt, void **pp)
static int memdbUnfetch(sqlite3_file*, sqlite3_int64 iOfst, void *p)
static int memdbOpen(sqlite3_vfs*, const char*, sqlite3_file*, int, int*)
static int memdbAccess(sqlite3_vfs*, const char *zName, int flags, int*)
static int memdbFullPathname(sqlite3_vfs*, const char *zName, int, char *zOut)
static void *memdbDlOpen(sqlite3_vfs*, const char *zFilename)
static void memdbDlError(sqlite3_vfs*, int nByte, char *zErrMsg)
static void memdbDlClose(sqlite3_vfs*, void*)
static int memdbRandomness(sqlite3_vfs*, int nByte, char *zOut)
static int memdbSleep(sqlite3_vfs*, int microseconds)
static int memdbGetLastError(sqlite3_vfs*, int, char*)
static int memdbCurrentTimeInt64(sqlite3_vfs*, sqlite3_int64*)
static void memdbEnter(MemStore *p)
static void memdbLeave(MemStore *p)
static int memdbEnlarge(MemStore *p, sqlite3_int64 newSz)
static MemFile *memdbFromDbSchema(sqlite3 *db, const char *zSchema)
static void pcacheManageDirtyList(PgHdr *pPage, u8 addRemove)
static void pcacheUnpin(PgHdr *p)
static int numberOfCachePages(PCache *p)
static SQLITE_NOINLINE PgHdr * pcacheFetchFinishWithInit (PCache *pCache, Pgno pgno, sqlite3_pcache_page *pPage)
static PgHdr *pcacheMergeDirtyList(PgHdr *pA, PgHdr *pB)
static PgHdr *pcacheSortDirtyList(PgHdr *pIn)
static int pcache1InitBulk(PCache1 *pCache)
static void *pcache1Alloc(int nByte)
static void pcache1Free(void *p)
static PgHdr1 *pcache1AllocPage(PCache1 *pCache, int benignMalloc)
static void pcache1FreePage(PgHdr1 *p)
static int pcache1UnderMemoryPressure(PCache1 *pCache)
static void pcache1ResizeHash(PCache1 *p)
static PgHdr1 *pcache1PinPage(PgHdr1 *pPage)
static void pcache1RemoveFromHash(PgHdr1 *pPage, int freeFlag)
static void pcache1EnforceMaxPage(PCache1 *pCache)
static void pcache1TruncateUnsafe(PCache1 *pCache, unsigned int iLimit)
static int pcache1Init(void *NotUsed)
static void pcache1Shutdown(void *NotUsed)
static void pcache1Destroy(sqlite3_pcache *p)
static sqlite3_pcache *pcache1Create(int szPage, int szExtra, int bPurgeable)
static void pcache1Cachesize(sqlite3_pcache *p, int nMax)
static void pcache1Shrink(sqlite3_pcache *p)
static int pcache1Pagecount(sqlite3_pcache *p)
static SQLITE_NOINLINE PgHdr1 * pcache1FetchStage2 (PCache1 *pCache, unsigned int iKey, int createFlag)
static PgHdr1 *pcache1FetchNoMutex(sqlite3_pcache *p, unsigned int iKey, int createFlag)
static sqlite3_pcache_page *pcache1Fetch(sqlite3_pcache *p, unsigned int iKey, int createFlag)
static void pcache1Unpin(sqlite3_pcache *p, sqlite3_pcache_page *pPg, int reuseUnlikely)
static void pcache1Rekey(sqlite3_pcache *p, sqlite3_pcache_page *pPg, unsigned int iOld, unsigned int iNew)
static void pcache1Truncate(sqlite3_pcache *p, unsigned int iLimit)
static struct RowSetEntry *rowSetEntryAlloc(RowSet *p)
static struct RowSetEntry *rowSetEntryMerge(struct RowSetEntry *pA, struct RowSetEntry *pB)
static struct RowSetEntry *rowSetEntrySort(struct RowSetEntry *pIn)
static void rowSetTreeToList(struct RowSetEntry *pIn, struct RowSetEntry **ppFirst, struct RowSetEntry **ppLast)
static struct RowSetEntry *rowSetNDeepTree(struct RowSetEntry **ppList, int iDepth)
static struct RowSetEntry *rowSetListToTree(struct RowSetEntry *pList)
static int getPageNormal(Pager*, Pgno, DbPage**, int)
static int getPageError(Pager*, Pgno, DbPage**, int)
static void setGetterMethod(Pager *pPager)
static int subjRequiresPage(PgHdr *pPg)
static int read32bits(sqlite3_file *fd, i64 offset, u32 *pRes)
static int write32bits(sqlite3_file *fd, i64 offset, u32 val)
static int pagerUnlockDb(Pager *pPager, int eLock)
static int pagerLockDb(Pager *pPager, int eLock)
static int jrnlBufferSize(Pager *pPager)
static int readSuperJournal(sqlite3_file *pJrnl, char *zSuper, u32 nSuper)
static i64 journalHdrOffset(Pager *pPager)
static int zeroJournalHdr(Pager *pPager, int doTruncate)
static int writeJournalHdr(Pager *pPager)
static int readJournalHdr(Pager *pPager, int isHot, i64 journalSize, u32 *pNRec, u32 *pDbSize)
static int writeSuperJournal(Pager *pPager, const char *zSuper)
static void pager_reset(Pager *pPager)
static void releaseAllSavepoints(Pager *pPager)
static int addToSavepointBitvecs(Pager *pPager, Pgno pgno)
static void pager_unlock(Pager *pPager)
static int pager_error(Pager *pPager, int rc)
static int pager_truncate(Pager *pPager, Pgno nPage)
static int pagerFlushOnCommit(Pager *pPager, int bCommit)
static int pager_end_transaction(Pager *pPager, int hasSuper, int bCommit)
static int pager_playback(Pager *pPager, int isHot)
static void pagerUnlockAndRollback(Pager *pPager)
static u32 pager_cksum(Pager *pPager, const u8 *aData)
static int pager_playback_one_page(Pager *pPager, i64 *pOffset, Bitvec *pDone, int isMainJrnl, int isSavepnt)
static int pager_delsuper(Pager *pPager, const char *zSuper)
static void setSectorSize(Pager *pPager)
static int readDbPage(PgHdr *pPg)
static void pager_write_changecounter(PgHdr *pPg)
static int pagerPagecount(Pager *pPager, Pgno *pnPage)
static int pagerPlaybackSavepoint(Pager *pPager, PagerSavepoint *pSavepoint)
static void pagerFixMaplimit(Pager *pPager)
static int pagerOpentemp(Pager *pPager, sqlite3_file *pFile, int vfsFlags)
static int pager_wait_on_lock(Pager *pPager, int locktype)
static int pagerSyncHotJournal(Pager *pPager)
static void pagerReleaseMapPage(PgHdr *pPg)
static void pagerFreeMapHdrs(Pager *pPager)
static int databaseIsUnmoved(Pager *pPager)
static int syncJournal(Pager *pPager, int newHdr)
static int pager_write_pagelist(Pager *pPager, PgHdr *pList)
static int openSubJournal(Pager *pPager)
static int subjournalPage(PgHdr *pPg)
static int subjournalPageIfRequired(PgHdr *pPg)
static int pagerStress(void *p, PgHdr *pPg)
static int hasHotJournal(Pager *pPager, int *pExists)
static void pagerUnlockIfUnused(Pager *pPager)
static int pager_open_journal(Pager *pPager)
static SQLITE_NOINLINE int pagerAddPageToRollbackJournal (PgHdr *pPg)
static int pager_write(PgHdr *pPg)
static SQLITE_NOINLINE int pagerWriteLargeSector (PgHdr *pPg)
static int pager_incr_changecounter(Pager *pPager, int isDirectMode)
static SQLITE_NOINLINE int pagerOpenSavepoint (Pager *pPager, int nSavepoint)
static int querySharedCacheTableLock(Btree *p, Pgno iTab, u8 eLock)
static int setSharedCacheTableLock(Btree *p, Pgno iTable, u8 eLock)
static void clearAllSharedCacheTableLocks(Btree *p)
static void downgradeAllSharedCacheTableLocks(Btree *p)
static void releasePage(MemPage *pPage)
static void releasePageOne(MemPage *pPage)
static void releasePageNotNull(MemPage *pPage)
static void invalidateAllOverflowCache(BtShared *pBt)
static void invalidateIncrblobCursors(Btree *pBtree, Pgno pgnoRoot, i64 iRow, int isClearTable)
static int btreeSetHasContent(BtShared *pBt, Pgno pgno)
static int btreeGetHasContent(BtShared *pBt, Pgno pgno)
static void btreeClearHasContent(BtShared *pBt)
static void btreeReleaseAllCursorPages(BtCursor *pCur)
static int saveCursorKey(BtCursor *pCur)
static int saveCursorPosition(BtCursor *pCur)
static int SQLITE_NOINLINE saveCursorsOnList (BtCursor *, Pgno, BtCursor *)
static int saveAllCursors(BtShared *pBt, Pgno iRoot, BtCursor *pExcept)
static int btreeMoveto(BtCursor *pCur, const void *pKey, i64 nKey, int bias, int *pRes)
static int btreeRestoreCursorPosition(BtCursor *pCur)
static Pgno ptrmapPageno(BtShared *pBt, Pgno pgno)
static void ptrmapPut(BtShared *pBt, Pgno key, u8 eType, Pgno parent, int *pRC)
static int ptrmapGet(BtShared *pBt, Pgno key, u8 *pEType, Pgno *pPgno)
static SQLITE_NOINLINE void btreeParseCellAdjustSizeForOverflow (MemPage *pPage, u8 *pCell, CellInfo *pInfo)
static int btreePayloadToLocal(MemPage *pPage, i64 nPayload)
static void btreeParseCellPtrNoPayload(MemPage *pPage, u8 *pCell, CellInfo *pInfo)
static void btreeParseCellPtr(MemPage *pPage, u8 *pCell, CellInfo *pInfo)
static void btreeParseCellPtrIndex(MemPage *pPage, u8 *pCell, CellInfo *pInfo)
static void btreeParseCell(MemPage *pPage, int iCell, CellInfo *pInfo)
static u16 cellSizePtr(MemPage *pPage, u8 *pCell)
static u16 cellSizePtrIdxLeaf(MemPage *pPage, u8 *pCell)
static u16 cellSizePtrNoPayload(MemPage *pPage, u8 *pCell)
static u16 cellSizePtrTableLeaf(MemPage *pPage, u8 *pCell)
static void ptrmapPutOvflPtr(MemPage *pPage, MemPage *pSrc, u8 *pCell, int *pRC)
static int defragmentPage(MemPage *pPage, int nMaxFrag)
static u8 *pageFindSlot(MemPage *pPg, int nByte, int *pRc)
static SQLITE_INLINE int allocateSpace (MemPage *pPage, int nByte, int *pIdx)
static int freeSpace(MemPage *pPage, u16 iStart, u16 iSize)
static int decodeFlags(MemPage *pPage, int flagByte)
static int btreeComputeFreeSpace(MemPage *pPage)
static SQLITE_NOINLINE int btreeCellSizeCheck (MemPage *pPage)
static int btreeInitPage(MemPage *pPage)
static void zeroPage(MemPage *pPage, int flags)
static MemPage *btreePageFromDbPage(DbPage *pDbPage, Pgno pgno, BtShared *pBt)
static int btreeGetPage(BtShared *pBt, Pgno pgno, MemPage **ppPage, int flags)
static MemPage *btreePageLookup(BtShared *pBt, Pgno pgno)
static Pgno btreePagecount(BtShared *pBt)
static int getAndInitPage(BtShared *pBt, Pgno pgno, MemPage **ppPage, int bReadOnly)
static int btreeGetUnusedPage(BtShared *pBt, Pgno pgno, MemPage **ppPage, int flags)
static void pageReinit(DbPage *pData)
static int btreeInvokeBusyHandler(void *pArg)
static int removeFromSharingList(BtShared *pBt)
static SQLITE_NOINLINE int allocateTempSpace (BtShared *pBt)
static void freeTempSpace(BtShared *pBt)
static int newDatabase(BtShared*)
static int lockBtree(BtShared *pBt)
static void unlockBtreeIfUnused(BtShared *pBt)
static SQLITE_NOINLINE int btreeBeginTrans (Btree *p, int wrflag, int *pSchemaVersion)
static int setChildPtrmaps(MemPage *pPage)
static int modifyPagePointer(MemPage *pPage, Pgno iFrom, Pgno iTo, u8 eType)
static int relocatePage(BtShared *pBt, MemPage *pDbPage, u8 eType, Pgno iPtrPage, Pgno iFreePage, int isCommit)
static int allocateBtreePage(BtShared*, MemPage**, Pgno*, Pgno, u8)
static int incrVacuumStep(BtShared *pBt, Pgno nFin, Pgno iLastPg, int bCommit)
static Pgno finalDbSize(BtShared *pBt, Pgno nOrig, Pgno nFree)
static int autoVacuumCommit(Btree *p)
static void btreeEndTransaction(Btree *p)
static void btreeSetNPage(BtShared *pBt, MemPage *pPage1)
static int btreeCursor(Btree *p, Pgno iTable, int wrFlag, struct KeyInfo *pKeyInfo, BtCursor *pCur)
static int btreeCursorWithLock(Btree *p, Pgno iTable, int wrFlag, struct KeyInfo *pKeyInfo, BtCursor *pCur)
static SQLITE_NOINLINE void getCellInfo (BtCursor *pCur)
static int getOverflowPage(BtShared *pBt, Pgno ovfl, MemPage **ppPage, Pgno *pPgnoNext)
static int copyPayload(void *pPayload, void *pBuf, int nByte, int eOp, DbPage *pDbPage)
static int accessPayload(BtCursor *pCur, u32 offset, u32 amt, unsigned char *pBuf, int eOp)
static SQLITE_NOINLINE int accessPayloadChecked (BtCursor *pCur, u32 offset, u32 amt, void *pBuf)
static const void *fetchPayload(BtCursor *pCur, u32 *pAmt)
static int moveToChild(BtCursor *pCur, u32 newPgno)
static void moveToParent(BtCursor *pCur)
static int moveToRoot(BtCursor *pCur)
static int moveToLeftmost(BtCursor *pCur)
static int moveToRightmost(BtCursor *pCur)
static SQLITE_NOINLINE int btreeLast (BtCursor *pCur, int *pRes)
static int indexCellCompare(BtCursor *pCur, int idx, UnpackedRecord *pIdxKey, RecordCompare xRecordCompare)
static int cursorOnLastPage(BtCursor *pCur)
static SQLITE_NOINLINE int btreeNext (BtCursor *pCur)
static SQLITE_NOINLINE int btreePrevious (BtCursor *pCur)
static int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage)
static void freePage(MemPage *pPage, int *pRC)
static SQLITE_NOINLINE int clearCellOverflow (MemPage *pPage, unsigned char *pCell, CellInfo *pInfo)
static int fillInCell(MemPage *pPage, unsigned char *pCell, const BtreePayload *pX, int *pnSize)
static void dropCell(MemPage *pPage, int idx, int sz, int *pRC)
static int insertCell(MemPage *pPage, int i, u8 *pCell, int sz, u8 *pTemp, Pgno iChild)
static int insertCellFast(MemPage *pPage, int i, u8 *pCell, int sz)
static void populateCellCache(CellArray *p, int idx, int N)
static SQLITE_NOINLINE u16 computeCellSize (CellArray *p, int N)
static u16 cachedCellSize(CellArray *p, int N)
static int rebuildPage(CellArray *pCArray, int iFirst, int nCell, MemPage *pPg)
static int pageInsertArray(MemPage *pPg, u8 *pBegin, u8 **ppData, u8 *pCellptr, int iFirst, int nCell, CellArray *pCArray)
static int pageFreeArray(MemPage *pPg, int iFirst, int nCell, CellArray *pCArray)
static int editPage(MemPage *pPg, int iOld, int iNew, int nNew, CellArray *pCArray)
static int balance_quick(MemPage *pParent, MemPage *pPage, u8 *pSpace)
static void copyNodeContent(MemPage *pFrom, MemPage *pTo, int *pRC)
static int balance_nonroot(MemPage *pParent, int iParentIdx, u8 *aOvflSpace, int isRoot, int bBulk)
static int balance_deeper(MemPage *pRoot, MemPage **ppChild)
static int anotherValidCursor(BtCursor *pCur)
static int balance(BtCursor *pCur)
static int btreeOverwriteContent(MemPage *pPage, u8 *pDest, const BtreePayload *pX, int iOffset, int iAmt)
static SQLITE_NOINLINE int btreeOverwriteOverflowCell (BtCursor *pCur, const BtreePayload *pX)
static int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX)
static int btreeCreateTable(Btree *p, Pgno *piTable, int createTabFlags)
static int clearDatabasePage(BtShared *pBt, Pgno pgno, int freePageFlag, i64 *pnChange)
static int btreeDropTable(Btree *p, Pgno iTable, int *piMoved)
static void checkOom(IntegrityCk *pCheck)
static void checkProgress(IntegrityCk *pCheck)
static void checkAppendMsg(IntegrityCk *pCheck, const char *zFormat, ...)
static int getPageReferenced(IntegrityCk *pCheck, Pgno iPg)
static void setPageReferenced(IntegrityCk *pCheck, Pgno iPg)
static int checkRef(IntegrityCk *pCheck, Pgno iPage)
static void checkPtrmap(IntegrityCk *pCheck, Pgno iChild, u8 eType, Pgno iParent)
static void checkList(IntegrityCk *pCheck, int isFreeList, Pgno iPage, u32 N)
static void btreeHeapInsert(u32 *aHeap, u32 x)
static int btreeHeapPull(u32 *aHeap, u32 *pOut)
static int checkTreePage(IntegrityCk *pCheck, Pgno iPage, i64 *piMinKey, i64 maxKey)
static Btree *findBtree(sqlite3 *pErrorDb, sqlite3 *pDb, const char *zDb)
static int setDestPgsz(sqlite3_backup *p)
static int checkReadTransaction(sqlite3 *db, Btree *p)
static int isFatalError(int rc)
static int backupOnePage(sqlite3_backup *p, Pgno iSrcPg, const u8 *zSrcData, int bUpdate)
static int backupTruncateFile(sqlite3_file *pFile, i64 iSize)
static void attachBackupObject(sqlite3_backup *p)
static SQLITE_NOINLINE void backupUpdate (sqlite3_backup *p, Pgno iPage, const u8 *aData)
static void vdbeMemRenderNum(int sz, char *zBuf, Mem *p)
static SQLITE_NOINLINE int vdbeMemAddTerminator (Mem *pMem)
static SQLITE_NOINLINE void vdbeMemClearExternAndSetNull (Mem *p)
static SQLITE_NOINLINE void vdbeMemClear (Mem *p)
static SQLITE_NOINLINE i64 memIntValue (const Mem *pMem)
static SQLITE_NOINLINE double memRealValue (Mem *pMem)
static SQLITE_NOINLINE void vdbeReleaseAndSetInt64 (Mem *pMem, i64 val)
static SQLITE_NOINLINE void vdbeClrCopy (Mem *pTo, const Mem *pFrom, int eType)
static SQLITE_NOINLINE const void * valueToText (sqlite3_value *pVal, u8 enc)
static sqlite3_value *valueNew(sqlite3 *db, struct ValueNewStat4Ctx *p)
static int valueFromExpr(sqlite3 *db, const Expr *pExpr, u8 enc, u8 affinity, sqlite3_value **ppVal, struct ValueNewStat4Ctx *pCtx)
static SQLITE_NOINLINE int valueBytes (sqlite3_value *pVal, u8 enc)
static void freeEphemeralFunction(sqlite3 *db, FuncDef *pDef)
static void vdbeFreeOpArray(sqlite3*, Op*, int)
static int growOpArray(Vdbe *v, int nOp)
static SQLITE_NOINLINE int growOp3 (Vdbe *p, int op, int p1, int p2, int p3)
static SQLITE_NOINLINE int addOp4IntSlow (Vdbe *p, int op, int p1, int p2, int p3, int p4)
static SQLITE_NOINLINE void resizeResolveLabel (Parse *p, Vdbe *v, int j)
static void resolveP2Values(Vdbe *p, int *pMaxFuncArgs)
static SQLITE_NOINLINE void freeP4Mem (sqlite3 *db, Mem *p)
static SQLITE_NOINLINE void freeP4FuncCtx (sqlite3 *db, sqlite3_context *p)
static void freeP4(sqlite3 *db, int p4type, void *p4)
static void SQLITE_NOINLINE vdbeChangeP4Full (Vdbe *p, Op *pOp, const char *zP4, int n)
static void initMemArray(Mem *p, int N, sqlite3 *db, u16 flags)
static void releaseMemArray(Mem *p, int N)
static void *allocSpace(struct ReusableSpace *p, void *pBuf, sqlite3_int64 nByte)
static SQLITE_NOINLINE void freeCursorWithCache (Vdbe *p, VdbeCursor *pCx)
static void closeCursorsInFrame(Vdbe *p)
static void closeAllCursors(Vdbe *p)
static int vdbeCommit(sqlite3 *db, Vdbe *p)
static SQLITE_NOINLINE int vdbeCloseStatement (Vdbe *p, int eOp)
static void sqlite3VdbeClearObject(sqlite3 *db, Vdbe *p)
static void serialGet(const unsigned char *buf, u32 serial_type, Mem *pMem)
static int serialGet7(const unsigned char *buf, Mem *pMem)
static int vdbeCompareMemString(const Mem *pMem1, const Mem *pMem2, const CollSeq *pColl, u8 *prcErr)
static int isAllZero(const char *z, int n)
static i64 vdbeRecordDecodeInt(u32 serial_type, const u8 *aKey)
static int vdbeRecordCompareInt(int nKey1, const void *pKey1, UnpackedRecord *pPKey2)
static int vdbeRecordCompareString(int nKey1, const void *pKey1, UnpackedRecord *pPKey2)
static int vdbeSafety(Vdbe *p)
static int vdbeSafetyNotNull(Vdbe *p)
static SQLITE_NOINLINE void invokeProfileCallback (sqlite3 *db, Vdbe *p)
static void setResultStrOrError(sqlite3_context *pCtx, const char *z, int n, u8 enc, void (*xDel)(void*))
static int invokeValueDestructor(const void *p, void (*xDel)(void*), sqlite3_context *pCtx, )
static int doWalCallbacks(sqlite3 *db)
static int sqlite3Step(Vdbe *p)
static int valueFromValueList(sqlite3_value *pVal, sqlite3_value **ppOut, int bNext)
static SQLITE_NOINLINE void * createAggContext (sqlite3_context *p, int nByte)
static const Mem *columnNullValue(void)
static Mem *columnMem(sqlite3_stmt *pStmt, int i)
static void columnMallocFailure(sqlite3_stmt *pStmt)
static const void *columnName(sqlite3_stmt *pStmt, int N, int useUtf16, int useType)
static int vdbeUnbind(Vdbe *p, unsigned int i)
static int bindText(sqlite3_stmt *pStmt, int i, const void *zData, i64 nData, void (*xDel)(void*), u8 encoding, )
static int findNextHostParameter(const char *zSql, int *pnToken)
static VdbeCursor *allocateCursor(Vdbe *p, int iCur, int nField, u8 eCurType)
static int alsoAnInt(Mem *pRec, double rValue, i64 *piValue)
static void applyNumericAffinity(Mem *pRec, int bTryForInt)
static void applyAffinity(Mem *pRec, char affinity, u8 enc)
static u16 SQLITE_NOINLINE computeNumericType (Mem *pMem)
static u16 numericType(Mem *pMem)
static SQLITE_NOINLINE Mem * out2PrereleaseWithClear (Mem *pOut)
static Mem *out2Prerelease(Vdbe *p, VdbeOp *pOp)
static u64 filterHash(const Mem *aMem, const Op *pOp)
static SQLITE_NOINLINE int vdbeColumnFromOverflow (VdbeCursor *pC, int iCol, int t, i64 iOffset, u32 cacheStatus, u32 colCacheCtr, Mem *pDest)
static const char *vdbeMemTypeName(Mem *pMem)
static int blobSeekToRow(Incrblob *p, sqlite3_int64 iRow, char **pzErr)
static int blobReadWrite(sqlite3_blob *pBlob, void *z, int n, int iOffset, int (*xCall)(BtCursor*, u32, u32, void*))
static int vdbeIncrSwap(IncrMerger*)
static void vdbeIncrFree(IncrMerger*)
static void vdbePmaReaderClear(PmaReader *pReadr)
static int vdbePmaReadBlob(PmaReader *p, int nByte, u8 **ppOut)
static int vdbePmaReadVarint(PmaReader *p, u64 *pnOut)
static int vdbeSorterMapFile(SortSubtask *pTask, SorterFile *pFile, u8 **pp)
static int vdbePmaReaderSeek(SortSubtask *pTask, PmaReader *pReadr, SorterFile *pFile, i64 iOff)
static int vdbePmaReaderNext(PmaReader *pReadr)
static int vdbePmaReaderInit(SortSubtask *pTask, SorterFile *pFile, i64 iStart, PmaReader *pReadr, i64 *pnByte)
static int vdbeSorterCompareTail(SortSubtask *pTask, int *pbKey2Cached, const void *pKey1, int nKey1, const void *pKey2, int nKey2)
static int vdbeSorterCompare(SortSubtask *pTask, int *pbKey2Cached, const void *pKey1, int nKey1, const void *pKey2, int nKey2)
static int vdbeSorterCompareText(SortSubtask *pTask, int *pbKey2Cached, const void *pKey1, int nKey1, const void *pKey2, int nKey2)
static int vdbeSorterCompareInt(SortSubtask *pTask, int *pbKey2Cached, const void *pKey1, int nKey1, const void *pKey2, int nKey2)
static void vdbeSorterRecordFree(sqlite3 *db, SorterRecord *pRecord)
static void vdbeSortSubtaskCleanup(sqlite3 *db, SortSubtask *pTask)
static MergeEngine *vdbeMergeEngineNew(int nReader)
static void vdbeMergeEngineFree(MergeEngine *pMerger)
static int vdbeSorterOpenTempFile(sqlite3 *db, i64 nExtend, sqlite3_file **ppFd)
static int vdbeSortAllocUnpacked(SortSubtask *pTask)
static SorterRecord *vdbeSorterMerge(SortSubtask *pTask, SorterRecord *p1, SorterRecord *p2)
static SorterCompare vdbeSorterGetCompare(VdbeSorter *p)
static int vdbeSorterSort(SortSubtask *pTask, SorterList *pList)
static void vdbePmaWriterInit(sqlite3_file *pFd, PmaWriter *p, int nBuf, i64 iStart)
static void vdbePmaWriteBlob(PmaWriter *p, u8 *pData, int nData)
static int vdbePmaWriterFinish(PmaWriter *p, i64 *piEof)
static void vdbePmaWriteVarint(PmaWriter *p, u64 iVal)
static int vdbeSorterListToPMA(SortSubtask *pTask, SorterList *pList)
static int vdbeMergeEngineStep(MergeEngine *pMerger, int *pbEof)
static int vdbeSorterFlushPMA(VdbeSorter *pSorter)
static int vdbeIncrPopulate(IncrMerger *pIncr)
static int vdbeIncrMergerNew(SortSubtask *pTask, MergeEngine *pMerger, IncrMerger **ppOut)
static void vdbeMergeEngineCompare(MergeEngine *pMerger, int iOut)
static int vdbePmaReaderIncrInit(PmaReader *pReadr, int eMode)
static int vdbeMergeEngineInit(SortSubtask *pTask, MergeEngine *pMerger, int eMode)
static int vdbePmaReaderIncrMergeInit(PmaReader *pReadr, int eMode)
static int vdbeMergeEngineLevel0(SortSubtask *pTask, int nPMA, i64 *piOffset, MergeEngine **ppOut)
static int vdbeSorterTreeDepth(int nPMA)
static int vdbeSorterAddToTree(SortSubtask *pTask, int nDepth, int iSeq, MergeEngine *pRoot, MergeEngine *pLeaf)
static int vdbeSorterMergeTreeBuild(VdbeSorter *pSorter, MergeEngine **ppOut)
static int vdbeSorterSetupMerge(VdbeSorter *pSorter)
static void *vdbeSorterRowkey(const VdbeSorter *pSorter, int *pnKey)
static int memjrnlRead(sqlite3_file *pJfd, void *zBuf, int iAmt, sqlite_int64 iOfst)
static void memjrnlFreeChunks(FileChunk *pFirst)
static int memjrnlCreateFile(MemJournal *p)
static int memjrnlTruncate(sqlite3_file *pJfd, sqlite_int64 size)
static int memjrnlWrite(sqlite3_file *pJfd, const void *zBuf, int iAmt, sqlite_int64 iOfst)
static int memjrnlClose(sqlite3_file *pJfd)
static int memjrnlSync(sqlite3_file *pJfd, int flags)
static int memjrnlFileSize(sqlite3_file *pJfd, sqlite_int64 *pSize)
static int walkWindowList(Walker *pWalker, Window *pList, int bOneOnly)
static int incrAggDepth(Walker *pWalker, Expr *pExpr)
static void incrAggFunctionDepth(Expr *pExpr, int N)
static void resolveAlias(Parse *pParse, ExprList *pEList, int iCol, Expr *pExpr, int nSubquery)
static int areDoubleQuotedStringsEnabled(sqlite3 *db, NameContext *pTopNC)
static void extendFJMatch(Parse *pParse, ExprList **ppList, SrcItem *pMatch, i16 iColumn)
static SQLITE_NOINLINE int isValidSchemaTableName (const char *zTab, Table *pTab, Schema *pSchema)
static int lookupName(Parse *pParse, const char *zDb, const char *zTab, const Expr *pRight, NameContext *pNC, Expr *pExpr)
static void notValidImpl(Parse *pParse, NameContext *pNC, const char *zMsg, Expr *pExpr, Expr *pError)
static int exprProbability(Expr *p)
static int resolveExprStep(Walker *pWalker, Expr *pExpr)
static int resolveAsName(Parse *pParse, ExprList *pEList, Expr *pE)
static int resolveOrderByTermToExprList(Parse *pParse, Select *pSelect, Expr *pE)
static void resolveOutOfRangeError(Parse *pParse, const char *zType, int i, int mx, Expr *pError)
static int resolveCompoundOrderBy(Parse *pParse, Select *pSelect)
static int resolveRemoveWindowsCb(Walker *pWalker, Expr *pExpr)
static void windowRemoveExprFromSelect(Select *pSelect, Expr *pExpr)
static int resolveOrderGroupBy(NameContext *pNC, Select *pSelect, ExprList *pOrderBy, const char *zType)
static int resolveSelectStep(Walker *pWalker, Select *p)
static void exprCodeBetween(Parse*, Expr*, int, void (*)(Parse*, Expr*, int, int), int, )
static int exprCodeVector(Parse *pParse, Expr *p, int *piToFree)
static char comparisonAffinity(const Expr *pExpr)
static u8 binaryCompareP5(const Expr *pExpr1, const Expr *pExpr2, int jumpIfNull)
static int codeCompare(Parse *pParse, Expr *pLeft, Expr *pRight, int opcode, int in1, int in2, int dest, int jumpIfNull, int isCommuted)
static int exprCodeSubselect(Parse *pParse, Expr *pExpr)
static int exprVectorRegister(Parse *pParse, Expr *pVector, int iField, int regSelect, Expr **ppExpr, int *pRegFree)
static void codeVectorCompare(Parse *pParse, Expr *pExpr, int dest, u8 op, u8 p5)
static SQLITE_NOINLINE void sqlite3ExprDeleteNN (sqlite3 *db, Expr *p)
static int exprStructSize(const Expr *p)
static int dupedExprStructSize(const Expr *p, int flags)
static int dupedExprNodeSize(const Expr *p, int flags)
static int dupedExprSize(const Expr *p)
static Expr *exprDup(sqlite3 *db, const Expr *p, int dupFlags, EdupBuf *pEdupBuf)
static int gatherSelectWindowsCallback(Walker *pWalker, Expr *pExpr)
static int gatherSelectWindowsSelectCallback(Walker *pWalker, Select *p)
static void gatherSelectWindows(Select *p)
SQLITE_PRIVATE SQLITE_NOINLINE ExprList * sqlite3ExprListAppendNew (sqlite3 *db, Expr *pExpr)
SQLITE_PRIVATE SQLITE_NOINLINE ExprList * sqlite3ExprListAppendGrow (sqlite3 *db, ExprList *pList, Expr *pExpr)
static SQLITE_NOINLINE void exprListDeleteNN (sqlite3 *db, ExprList *pList)
static SQLITE_NOINLINE int exprNodeIsConstantFunction (Walker *pWalker, Expr *pExpr)
static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr)
static int exprIsConst(Parse *pParse, Expr *p, int initFlag)
static int sqlite3ExprIsConstantNotJoin(Parse *pParse, Expr *p)
static int exprSelectWalkTableConstant(Walker *pWalker, Select *pSelect)
static int sqlite3ExprIsTableConstant(Expr *p, int iCur, int bAllowSubq)
static int exprNodeIsConstantOrGroupBy(Walker *pWalker, Expr *pExpr)
static Select *isCandidateForInOpt(const Expr *pX)
static void sqlite3SetHasNullFlag(Vdbe *v, int iCur, int regHasNull)
static int sqlite3InRhsIsConstant(Parse *pParse, Expr *pIn)
static char *exprINAffinity(Parse *pParse, const Expr *pExpr)
SQLITE_PRIVATE void sqlite3SubselectError (Parse *pParse, int nActual, int nExpect)
static void sqlite3ExprCodeIN(Parse *pParse, Expr *pExpr, int destIfFalse, int destIfNull)
static void codeReal(Vdbe *v, const char *z, int negateFlag, int iMem)
static void codeInteger(Parse *pParse, Expr *pExpr, int negFlag, int iMem)
static void exprToRegister(Expr *pExpr, int iReg)
static void setDoNotMergeFlagOnCopy(Vdbe *v)
static int exprCodeInlineFunction(Parse *pParse, ExprList *pFarg, int iFuncId, int target)
static SQLITE_NOINLINE int sqlite3IndexedExprLookup (Parse *pParse, Expr *pExpr, int target)
static int exprPartidxExprLookup(Parse *pParse, Expr *pExpr, int iTarget)
static int exprCompareVariable(const Parse *pParse, const Expr *pVar, const Expr *pExpr)
static int exprImpliesNotNull(const Parse *pParse, const Expr *p, const Expr *pNN, int iTab, int seenNot)
static void bothImplyNotNullRow(Walker *pWalker, Expr *pE1, Expr *pE2)
static int impliesNotNullRow(Walker *pWalker, Expr *pExpr)
static int exprIdxCover(Walker *pWalker, Expr *pExpr)
static int selectRefEnter(Walker *pWalker, Select *pSelect)
static void selectRefLeave(Walker *pWalker, Select *pSelect)
static int exprRefToSrcList(Walker *pWalker, Expr *pExpr)
static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr)
static int addAggInfoColumn(sqlite3 *db, AggInfo *pInfo)
static int addAggInfoFunc(sqlite3 *db, AggInfo *pInfo)
static void findOrCreateAggInfoColumn(Parse *pParse, AggInfo *pAggInfo, Expr *pExpr)
static int analyzeAggregate(Walker *pWalker, Expr *pExpr)
static int isAlterableTable(Parse *pParse, Table *pTab)
static void renameTestSchema(Parse *pParse, const char *zDb, int bTemp, const char *zWhen, int bNoDQS)
static void renameFixQuotes(Parse *pParse, const char *zDb, int bTemp)
static void renameReloadSchema(Parse *pParse, int iDb, u16 p5)
static void sqlite3ErrorIfNotEmpty(Parse *pParse, const char *zDb, const char *zTab, const char *zErr)
static int isRealTable(Parse *pParse, Table *pTab, int bDrop)
static int renameUnmapExprCb(Walker *pWalker, Expr *pExpr)
static void renameWalkWith(Walker *pWalker, Select *pSelect)
static void unmapColumnIdlistNames(Parse *pParse, const IdList *pIdList)
static int renameUnmapSelectCb(Walker *pWalker, Select *p)
static void renameTokenFree(sqlite3 *db, RenameToken *pToken)
static RenameToken *renameTokenFind(Parse *pParse, struct RenameCtx *pCtx, const void *pPtr)
static int renameColumnSelectCb(Walker *pWalker, Select *p)
static int renameColumnExprCb(Walker *pWalker, Expr *pExpr)
static RenameToken *renameColumnTokenNext(RenameCtx *pCtx)
static void renameColumnParseError(sqlite3_context *pCtx, const char *zWhen, sqlite3_value *pType, sqlite3_value *pObject, Parse *pParse)
static void renameColumnElistNames(Parse *pParse, RenameCtx *pCtx, const ExprList *pEList, const char *zOld)
static void renameColumnIdlistNames(Parse *pParse, RenameCtx *pCtx, const IdList *pIdList, const char *zOld)
static int renameParseSql(Parse *p, const char *zDb, sqlite3 *db, const char *zSql, int bTemp)
static int renameEditSql(sqlite3_context *pCtx, RenameCtx *pRename, const char *zSql, const char *zNew, int bQuote)
static void renameSetENames(ExprList *pEList, int val)
static int renameResolveTrigger(Parse *pParse)
static void renameWalkTrigger(Walker *pWalker, Trigger *pTrigger)
static void renameParseCleanup(Parse *pParse)
static void renameColumnFunc(sqlite3_context *context, int NotUsed, sqlite3_value **argv)
static int renameTableExprCb(Walker *pWalker, Expr *pExpr)
static int renameTableSelectCb(Walker *pWalker, Select *pSelect)
static void renameTableFunc(sqlite3_context *context, int NotUsed, sqlite3_value **argv)
static int renameQuotefixExprCb(Walker *pWalker, Expr *pExpr)
static void renameQuotefixFunc(sqlite3_context *context, int NotUsed, sqlite3_value **argv)
static void renameTableTest(sqlite3_context *context, int NotUsed, sqlite3_value **argv)
static void dropColumnFunc(sqlite3_context *context, int NotUsed, sqlite3_value **argv)
static void openStatTable(Parse *pParse, int iDb, int iStatCur, const char *zWhere, const char *zWhereType)
static void statAccumDestructor(void *pOld)
static void statInit(sqlite3_context *context, int argc, sqlite3_value **argv)
static void statPush(sqlite3_context *context, int argc, sqlite3_value **argv)
static void statGet(sqlite3_context *context, int argc, sqlite3_value **argv)
static void callStatGet(Parse *pParse, int regStat, int iParam, int regOut)
static void analyzeOneTable(Parse *pParse, Table *pTab, Index *pOnlyIdx, int iStatCur, int iMem, int iTab)
static void loadAnalysis(Parse *pParse, int iDb)
static void analyzeDatabase(Parse *pParse, int iDb)
static void analyzeTable(Parse *pParse, Table *pTab, Index *pOnlyIdx)
static void decodeIntArray(char *zIntArray, int nOut, tRowcnt *aOut, LogEst *aLog, Index *pIndex)
static int analysisLoader(void *pData, int argc, char **argv, char **NotUsed)
static int resolveAttachExpr(NameContext *pName, Expr *pExpr)
static void attachFunc(sqlite3_context *context, int NotUsed, sqlite3_value **argv)
static void detachFunc(sqlite3_context *context, int NotUsed, sqlite3_value **argv)
static void codeAttach(Parse *pParse, int type, FuncDef const *pFunc, Expr *pAuthArg, Expr *pFilename, Expr *pDbname, Expr *pKey)
static int fixExprCb(Walker *p, Expr *pExpr)
static int fixSelectCb(Walker *p, Select *pSelect)
static void sqliteAuthBadReturnCode(Parse *pParse)
static SQLITE_NOINLINE void lockTable (Parse *pParse, int iDb, Pgno iTab, u8 isWriteLock, const char *zName)
static void codeTableLocks(Parse *pParse)
static void SQLITE_NOINLINE deleteTable (sqlite3 *db, Table *pTable)
static void sqlite3ForceNotReadOnly(Parse *pParse)
static void sqlite3DeleteReturning(sqlite3 *db, void *pArg)
static void sqlite3StringToId(Expr *p)
static void makeColumnPartOfPrimaryKey(Parse *pParse, Column *pCol)
static int identLength(const char *z)
static void identPut(char *z, int *pIdx, char *zSignedIdent)
static char *createTableStmt(sqlite3 *db, Table *p)
static int resizeIndexObject(sqlite3 *db, Index *pIdx, int N)
static void estimateTableWidth(Table *pTab)
static void estimateIndexWidth(Index *pIdx)
static int hasColumn(const i16 *aiCol, int nCol, int x)
static int isDupColumn(Index *pIdx, int nKey, Index *pPk, int iCol)
static void recomputeColumnsNotIndexed(Index *pIdx)
static void convertToWithoutRowidTable(Parse *pParse, Table *pTab)
static SQLITE_NOINLINE int viewGetColumnNames (Parse *pParse, Table *pTable)
static void sqliteViewResetAll(sqlite3 *db, int idx)
static void destroyRootPage(Parse *pParse, int iTable, int iDb)
static void destroyTable(Parse *pParse, Table *pTab)
static void sqlite3ClearStatTables(Parse *pParse, int iDb, const char *zType, const char *zName)
static int tableMayNotBeDropped(sqlite3 *db, Table *pTab)
static void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage)
static void sqlite3CodeVerifySchemaAtToplevel(Parse *pToplevel, int iDb)
static int collationMatch(const char *zColl, Index *pIndex)
static void reindexTable(Parse *pParse, Table *pTab, char const *zColl)
static void reindexDatabases(Parse *pParse, char const *zColl)
static void cteClear(sqlite3 *db, Cte *pCte)
static void callCollNeeded(sqlite3 *db, int enc, const char *zName)
static int synthCollSeq(sqlite3 *db, CollSeq *pColl)
static CollSeq *findCollSeqEntry(sqlite3 *db, const char *zName, int create)
static int matchQuality(FuncDef *p, int nArg, u8 enc)
static int vtabIsReadOnly(Parse *pParse, Table *pTab)
static int tabIsReadOnly(Parse *pParse, Table *pTab)
static CollSeq *sqlite3GetFuncCollSeq(sqlite3_context *context)
static void sqlite3SkipAccumulatorLoad(sqlite3_context *context)
static void minmaxFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void typeofFunc(sqlite3_context *context, int NotUsed, sqlite3_value **argv)
static void subtypeFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void lengthFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void bytelengthFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void absFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void instrFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void printfFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void substrFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void *contextMalloc(sqlite3_context *context, i64 nByte)
static void upperFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void lowerFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void randomFunc(sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
static void randomBlob(sqlite3_context *context, int argc, sqlite3_value **argv)
static void last_insert_rowid(sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
static void changes(sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
static void total_changes(sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
static int patternCompare(const u8 *zPattern, const u8 *zString, const struct compareInfo *pInfo, u32 matchOther)
static void likeFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void nullifFunc(sqlite3_context *context, int NotUsed, sqlite3_value **argv)
static void versionFunc(sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
static void sourceidFunc(sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
static void errlogFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void compileoptionusedFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void compileoptiongetFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void quoteFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void unicodeFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void charFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void hexFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static int strContainsChar(const u8 *zStr, int nStr, u32 ch)
static void unhexFunc(sqlite3_context *pCtx, int argc, sqlite3_value **argv)
static void zeroblobFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void replaceFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void trimFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void concatFuncCore(sqlite3_context *context, int argc, sqlite3_value **argv, int nSep, const char *zSep)
static void concatFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void concatwsFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void kahanBabuskaNeumaierStep(volatile SumCtx *pSum, volatile double r)
static void kahanBabuskaNeumaierStepInt64(volatile SumCtx *pSum, i64 iVal)
static void kahanBabuskaNeumaierInit(volatile SumCtx *p, i64 iVal)
static void sumStep(sqlite3_context *context, int argc, sqlite3_value **argv)
static void sumInverse(sqlite3_context *context, int argc, sqlite3_value **argv)
static void sumFinalize(sqlite3_context *context)
static void avgFinalize(sqlite3_context *context)
static void totalFinalize(sqlite3_context *context)
static void countStep(sqlite3_context *context, int argc, sqlite3_value **argv)
static void countFinalize(sqlite3_context *context)
static void countInverse(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void minmaxStep(sqlite3_context *context, int NotUsed, sqlite3_value **argv)
static void minMaxValueFinalize(sqlite3_context *context, int bValue)
static void minMaxValue(sqlite3_context *context)
static void minMaxFinalize(sqlite3_context *context)
static void groupConcatStep(sqlite3_context *context, int argc, sqlite3_value **argv)
static void groupConcatInverse(sqlite3_context *context, int argc, sqlite3_value **argv)
static void groupConcatFinalize(sqlite3_context *context)
static void groupConcatValue(sqlite3_context *context)
static void signFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
static void fkLookupParent(Parse *pParse, int iDb, Table *pTab, Index *pIdx, FKey *pFKey, int *aiCol, int regData, int nIncr, int isIgnore)
static Expr *exprTableRegister(Parse *pParse, Table *pTab, int regBase, i16 iCol)
static Expr *exprTableColumn(sqlite3 *db, Table *pTab, int iCursor, i16 iCol)
static void fkScanChildren(Parse *pParse, SrcList *pSrc, Table *pTab, Index *pIdx, FKey *pFKey, int *aiCol, int regData, int nIncr)
static void fkTriggerDelete(sqlite3 *dbMem, Trigger *p)
static int fkChildIsModified(Table *pTab, FKey *p, int *aChange, int bChngRowid)
static int fkParentIsModified(Table *pTab, FKey *p, int *aChange, int bChngRowid)
static int isSetNullAction(Parse *pParse, FKey *pFKey)
static Trigger *fkActionTrigger(Parse *pParse, Table *pTab, FKey *pFKey, ExprList *pChanges)
static SQLITE_NOINLINE const char * computeIndexAffStr (sqlite3 *db, Index *pIdx)
static int readsTable(Parse *p, int iDb, Table *pTab)
static int exprColumnFlagUnion(Walker *pWalker, Expr *pExpr)
static int autoIncBegin(Parse *pParse, int iDb, Table *pTab)
static void autoIncStep(Parse *pParse, int memId, int regRowid)
static SQLITE_NOINLINE void autoIncrementEnd (Parse *pParse)
static int exprListIsConstant(Parse *pParse, ExprList *pRow)
static int exprListIsNoAffinity(Parse *pParse, ExprList *pRow)
static int xferOptimization(Parse *pParse, Table *pDest, Select *pSelect, int onError, int iDbDest)
static int checkConstraintExprNode(Walker *pWalker, Expr *pExpr)
static Index *indexIteratorFirst(IndexIterator *pIter, int *pIx)
static Index *indexIteratorNext(IndexIterator *pIter, int *pIx)
static int xferCompatibleIndex(Index *pDest, Index *pSrc)
static u8 getSafetyLevel(const char *z, int omitFull, u8 dflt)
static int getLockingMode(const char *z)
static int getAutoVacuum(const char *z)
static int getTempStore(const char *z)
static int invalidateTempStorage(Parse *pParse)
static int changeTempStorage(Parse *pParse, const char *zStorageType)
static void setPragmaResultColumnNames(Vdbe *v, const PragmaName *pPragma)
static void returnSingleInt(Vdbe *v, i64 value)
static void returnSingleText(Vdbe *v, const char *zValue)
static void setAllPagerFlags(sqlite3 *db)
static const char *actionName(u8 action)
static const PragmaName *pragmaLocate(const char *zName)
static void pragmaFunclistLine(Vdbe *v, FuncDef *p, int isBuiltin, int showInternFuncs)
static int integrityCheckResultRow(Vdbe *v)
static int pragmaVtabConnect(sqlite3 *db, void *pAux, int argc, const char *const *argv, sqlite3_vtab **ppVtab, char **pzErr)
static int pragmaVtabDisconnect(sqlite3_vtab *pVtab)
static int pragmaVtabBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo)
static int pragmaVtabOpen(sqlite3_vtab *pVtab, sqlite3_vtab_cursor **ppCursor)
static void pragmaVtabCursorClear(PragmaVtabCursor *pCsr)
static int pragmaVtabClose(sqlite3_vtab_cursor *cur)
static int pragmaVtabNext(sqlite3_vtab_cursor *pVtabCursor)
static int pragmaVtabFilter(sqlite3_vtab_cursor *pVtabCursor, int idxNum, const char *idxStr, int argc, sqlite3_value **argv)
static int pragmaVtabEof(sqlite3_vtab_cursor *pVtabCursor)
static int pragmaVtabColumn(sqlite3_vtab_cursor *pVtabCursor, sqlite3_context *ctx, int i)
static int pragmaVtabRowid(sqlite3_vtab_cursor *pVtabCursor, sqlite_int64 *p)
static void corruptSchema(InitData *pData, char **azObj, const char *zExtra)
static int sqlite3Prepare(sqlite3 *db, const char *zSql, int nBytes, u32 prepFlags, Vdbe *pReprepare, sqlite3_stmt **ppStmt, const char **pzTail)
static void schemaIsValid(Parse *pParse)
static int sqlite3LockAndPrepare(sqlite3 *db, const char *zSql, int nBytes, u32 prepFlags, Vdbe *pOld, sqlite3_stmt **ppStmt, const char **pzTail)
static int sqlite3Prepare16(sqlite3 *db, const void *zSql, int nBytes, u32 prepFlags, sqlite3_stmt **ppStmt, const void **pzTail)
static void clearSelect(sqlite3 *db, Select *p, int bFree)
static Select *findRightmost(Select *p)
static int tableAndColumnIndex(SrcList *pSrc, int iStart, int iEnd, const char *zCol, int *piTab, int *piCol, int bIgnoreHidden)
static void unsetJoinExpr(Expr *p, int iTable, int nullable)
static int sqlite3ProcessJoin(Parse *pParse, Select *p)
static void innerLoopLoadRow(Parse *pParse, Select *pSelect, RowLoadInfo *pInfo)
static int makeSorterRecord(Parse *pParse, SortCtx *pSort, Select *pSelect, int regBase, int nBase)
static void pushOntoSorter(Parse *pParse, SortCtx *pSort, Select *pSelect, int regData, int regOrigData, int nData, int nPrefixReg)
static void codeOffset(Vdbe *v, int iOffset, int iContinue)
static int codeDistinct(Parse *pParse, int eTnctType, int iTab, int addrRepeat, ExprList *pEList, int regElem)
static void fixDistinctOpenEph(Parse *pParse, int eTnctType, int iVal, int iOpenEphAddr)
static void selectInnerLoop(Parse *pParse, Select *p, int srcTab, SortCtx *pSort, DistinctCtx *pDistinct, SelectDest *pDest, int iContinue, int iBreak)
static void explainTempTable(Parse *pParse, const char *zUsage)
static void generateSortTail(Parse *pParse, Select *p, SortCtx *pSort, int nColumn, SelectDest *pDest)
static const char *columnTypeImpl(NameContext *pNC, Expr *pExpr)
static void generateColumnTypes(Parse *pParse, SrcList *pTabList, ExprList *pEList)
static void computeLimitRegisters(Parse *pParse, Select *p, int iBreak)
static CollSeq *multiSelectCollSeq(Parse *pParse, Select *p, int iCol)
static KeyInfo *multiSelectOrderByKeyInfo(Parse *pParse, Select *p, int nExtra)
static void generateWithRecursiveQuery(Parse *pParse, Select *p, SelectDest *pDest)
static int multiSelectOrderBy(Parse *pParse, Select *p, SelectDest *pDest)
static int multiSelectValues(Parse *pParse, Select *p, SelectDest *pDest)
static int hasAnchor(Select *p)
static int multiSelect(Parse *pParse, Select *p, SelectDest *pDest)
static int generateOutputSubroutine(Parse *pParse, Select *p, SelectDest *pIn, SelectDest *pDest, int regReturn, int regPrev, KeyInfo *pKeyInfo, int iBreak)
static void substExprList(SubstContext*, ExprList*)
static void substSelect(SubstContext*, Select*, int)
static Expr *substExpr(SubstContext *pSubst, Expr *pExpr)
static int recomputeColumnsUsedExpr(Walker *pWalker, Expr *pExpr)
static void recomputeColumnsUsed(Select *pSelect, SrcItem *pSrcItem)
static void srclistRenumberCursors(Parse *pParse, int *aCsrMap, SrcList *pSrc, int iExcept)
static void renumberCursorDoMapping(Walker *pWalker, int *piCursor)
static int renumberCursorsCb(Walker *pWalker, Expr *pExpr)
static void renumberCursors(Parse *pParse, Select *p, int iExcept, int *aCsrMap)
static ExprList *findLeftmostExprlist(Select *pSel)
static int compoundHasDifferentAffinities(Select *p)
static int flattenSubquery(Parse *pParse, Select *p, int iFrom, int isAgg)
static void constInsert(WhereConst *pConst, Expr *pColumn, Expr *pValue, Expr *pExpr)
static void findConstInWhere(WhereConst *pConst, Expr *pExpr)
static int propagateConstantExprRewriteOne(WhereConst *pConst, Expr *pExpr, int bIgnoreAffBlob)
static int propagateConstantExprRewrite(Walker *pWalker, Expr *pExpr)
static int propagateConstants(Parse *pParse, Select *p)
static int pushDownWindowCheck(Parse *pParse, Select *pSubq, Expr *pExpr)
static int pushDownWhereTerms(Parse *pParse, Select *pSubq, Expr *pWhere, SrcList *pSrcList, int iSrc)
static int disableUnusedSubqueryResultColumns(SrcItem *pItem)
static u8 minMaxQuery(sqlite3 *db, Expr *pFunc, ExprList **ppMinMax)
static Table *isSimpleCount(Select *p, AggInfo *pAggInfo)
static int convertCompoundSelectToSubquery(Walker *pWalker, Select *p)
static int cannotBeFunction(Parse *pParse, SrcItem *pFrom)
static struct Cte *searchWith(With *pWith, SrcItem *pItem, With **ppContext)
static int resolveFromTermToCte(Parse *pParse, Walker *pWalker, SrcItem *pFrom)
static int inAnyUsingClause(const char *zName, SrcItem *pBase, int N)
static int selectExpander(Walker *pWalker, Select *p)
static void sqlite3SelectExpand(Parse *pParse, Select *pSelect)
static void selectAddSubqueryTypeInfo(Walker *pWalker, Select *p)
static void sqlite3SelectAddTypeInfo(Parse *pParse, Select *pSelect)
static void analyzeAggFuncArgs(AggInfo *pAggInfo, NameContext *pNC)
static void optimizeAggregateUseOfIndexedExpr(Parse *pParse, Select *pSelect, AggInfo *pAggInfo, NameContext *pNC)
static int aggregateIdxEprRefToColCallback(Walker *pWalker, Expr *pExpr)
static void aggregateConvertIndexedExprRefToColumn(AggInfo *pAggInfo)
static void assignAggregateRegisters(Parse *pParse, AggInfo *pAggInfo)
static void resetAccumulator(Parse *pParse, AggInfo *pAggInfo)
static void finalizeAggFunctions(Parse *pParse, AggInfo *pAggInfo)
static void updateAccumulator(Parse *pParse, int regAcc, AggInfo *pAggInfo, int eDistinctType)
static void explainSimpleCount(Parse *pParse, Table *pTab, Index *pIdx)
static int havingToWhereExprCb(Walker *pWalker, Expr *pExpr)
static void havingToWhere(Parse *pParse, Select *p)
static SrcItem *isSelfJoinView(SrcList *pTabList, SrcItem *pThis, int iFirst, int iEnd)
static void agginfoFree(sqlite3 *db, void *pArg)
static int countOfViewOptimization(Parse *pParse, Select *p)
static int sameSrcAlias(SrcItem *p0, SrcList *pSrc)
static int fromClauseTermCanBeCoroutine(Parse *pParse, SrcList *pTabList, int i, int selFlags)
static int sqlite3_get_table_cb(void *pArg, int nCol, char **argv, char **colv)
static char *triggerSpanDup(sqlite3 *db, const char *zStart, const char *zEnd)
static TriggerStep *triggerStepAllocate(Parse *pParse, u8 op, Token *pName, const char *zStart, const char *zEnd)
static Table *tableOfTrigger(Trigger *pTrigger)
static int checkColumnOverlap(IdList *pIdList, ExprList *pEList)
static int tempTriggersExist(sqlite3 *db)
static SQLITE_NOINLINE Trigger * triggersReallyExist (Parse *pParse, Table *pTab, int op, ExprList *pChanges, int *pMask)
static int isAsteriskTerm(Parse *pParse, Expr *pTerm)
static ExprList *sqlite3ExpandReturning(Parse *pParse, ExprList *pList, Table *pTab)
static int sqlite3ReturningSubqueryVarSelect(Walker *NotUsed, Expr *pExpr)
static int sqlite3ReturningSubqueryCorrelated(Walker *pWalker, Select *pSelect)
static void sqlite3ProcessReturningSubqueries(ExprList *pEList, Table *pTab)
static void codeReturningTrigger(Parse *pParse, Trigger *pTrigger, Table *pTab, int regIn)
static int codeTriggerProgram(Parse *pParse, TriggerStep *pStepList, int orconf)
static void transferParseError(Parse *pTo, Parse *pFrom)
static TriggerPrg *codeRowTrigger(Parse *pParse, Trigger *pTrigger, Table *pTab, int orconf)
static TriggerPrg *getRowTrigger(Parse *pParse, Trigger *pTrigger, Table *pTab, int orconf)
static void updateVirtualTable(Parse *pParse, SrcList *pSrc, Table *pTab, ExprList *pChanges, Expr *pRowidExpr, int *aXRef, Expr *pWhere, int onError)
static int indexColumnIsBeingUpdated(Index *pIdx, int iCol, int *aXRef, int chngRowid)
static int indexWhereClauseMightChange(Index *pIdx, int *aXRef, int chngRowid)
static Expr *exprRowColumn(Parse *pParse, int iCol)
static void updateFromSelect(Parse *pParse, int iEph, Index *pPk, ExprList *pChanges, SrcList *pTabList, Expr *pWhere, ExprList *pOrderBy, Expr *pLimit)
static void SQLITE_NOINLINE upsertDelete (sqlite3 *db, Upsert *p)
static int execSql(sqlite3 *db, char **pzErrMsg, const char *zSql)
static int execSqlF(sqlite3 *db, char **pzErrMsg, const char *zSql, ...)
static int createModule(sqlite3 *db, const char *zName, const sqlite3_module *pModule, void *pAux, void (*xDestroy)(void*))
static VTable *vtabDisconnectAll(sqlite3 *db, Table *p)
static void addModuleArgument(Parse *pParse, Table *pTable, char *zArg)
static void addArgumentToVtab(Parse *pParse)
static int vtabCallConstructor(sqlite3 *db, Table *pTab, Module *pMod, int (*xConstruct)(sqlite3*, void*, int, const char*const*, sqlite3_vtab**, char**), char **pzErr, )
static int growVTrans(sqlite3 *db)
static void addToVTrans(sqlite3 *db, VTable *pVTab)
static void callFinaliser(sqlite3 *db, int offset)
SQLITE_PRIVATE Bitmask sqlite3WhereGetMask (WhereMaskSet *, int)
SQLITE_PRIVATE WhereTerm * sqlite3WhereFindTerm (WhereClause *pWC, int iCur, int iColumn, Bitmask notReady, u32 op, Index *pIdx)
SQLITE_PRIVATE void * sqlite3WhereMalloc (WhereInfo *pWInfo, u64 nByte)
SQLITE_PRIVATE void * sqlite3WhereRealloc (WhereInfo *pWInfo, void *pOld, u64 nByte)
SQLITE_PRIVATE int sqlite3WhereExplainOneScan (Parse *pParse, SrcList *pTabList, WhereLevel *pLevel, u16 wctrlFlags)
SQLITE_PRIVATE int sqlite3WhereExplainBloomFilter (const Parse *pParse, const WhereInfo *pWInfo, const WhereLevel *pLevel)
SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart (Parse *pParse, Vdbe *v, WhereInfo *pWInfo, int iLevel, WhereLevel *pLevel, Bitmask notReady)
SQLITE_PRIVATE SQLITE_NOINLINE void sqlite3WhereRightJoinLoop (WhereInfo *pWInfo, int iLevel, WhereLevel *pLevel)
SQLITE_PRIVATE void sqlite3WhereClauseInit (WhereClause *, WhereInfo *)
SQLITE_PRIVATE void sqlite3WhereClauseClear (WhereClause *)
SQLITE_PRIVATE void sqlite3WhereSplit (WhereClause *, Expr *, u8)
SQLITE_PRIVATE void sqlite3WhereAddLimit (WhereClause *, Select *)
SQLITE_PRIVATE Bitmask sqlite3WhereExprUsage (WhereMaskSet *, Expr *)
SQLITE_PRIVATE Bitmask sqlite3WhereExprUsageNN (WhereMaskSet *, Expr *)
SQLITE_PRIVATE Bitmask sqlite3WhereExprListUsage (WhereMaskSet *, ExprList *)
SQLITE_PRIVATE void sqlite3WhereExprAnalyze (SrcList *, WhereClause *)
SQLITE_PRIVATE void sqlite3WhereTabFuncArgs (Parse *, SrcItem *, WhereClause *)
static const char *explainIndexColumnName(Index *pIdx, int i)
static void explainAppendTerm(StrAccum *pStr, Index *pIdx, int nTerm, int iTerm, int bAnd, const char *zOp)
static void explainIndexRange(StrAccum *pStr, WhereLoop *pLoop)
static void disableTerm(WhereLevel *pLevel, WhereTerm *pTerm)
static void codeApplyAffinity(Parse *pParse, int base, int n, char *zAff)
static void updateRangeAffinityStr(Expr *pRight, int n, char *zAff)
static Expr *removeUnindexableInClauseTerms(Parse *pParse, int iEq, WhereLoop *pLoop, Expr *pX)
static int codeEqualityTerm(Parse *pParse, WhereTerm *pTerm, WhereLevel *pLevel, int iEq, int bRev, int iTarget)
static int codeAllEqualityTerms(Parse *pParse, WhereLevel *pLevel, int bRev, int nExtraReg, char **pzAff)
static void codeDeferredSeek(WhereInfo *pWInfo, Index *pIdx, int iCur, int iIdxCur)
static void codeExprOrVector(Parse *pParse, Expr *p, int iReg, int nReg)
static void whereApplyPartialIndexConstraints(Expr *pTruth, int iTabCur, WhereClause *pWC)
static SQLITE_NOINLINE void filterPullDown (Parse *pParse, WhereInfo *pWInfo, int iLevel, int addrNxt, Bitmask notReady)
static int whereLoopIsOneRow(WhereLoop *pLoop)
static void exprAnalyze(SrcList*, WhereClause*, int)
static void whereOrInfoDelete(sqlite3 *db, WhereOrInfo *p)
static void whereAndInfoDelete(sqlite3 *db, WhereAndInfo *p)
static int whereClauseInsert(WhereClause *pWC, Expr *p, u16 wtFlags)
static int allowedOp(int op)
static u16 exprCommute(Parse *pParse, Expr *pExpr)
static u16 operatorMask(int op)
static int isLikeOrGlob(Parse *pParse, Expr *pExpr, Expr **ppPrefix, int *pisComplete, int *pnoCase)
static int isAuxiliaryVtabOperator(sqlite3 *db, Expr *pExpr, unsigned char *peOp2, Expr **ppLeft, Expr **ppRight)
static void transferJoinMarkings(Expr *pDerived, Expr *pBase)
static void markTermAsChild(WhereClause *pWC, int iChild, int iParent)
static WhereTerm *whereNthSubterm(WhereTerm *pTerm, int N)
static void whereCombineDisjuncts(SrcList *pSrc, WhereClause *pWC, WhereTerm *pOne, WhereTerm *pTwo)
static void exprAnalyzeOrTerm(SrcList *pSrc, WhereClause *pWC, int idxTerm)
static int termIsEquivalence(Parse *pParse, Expr *pExpr)
static Bitmask exprSelectUsage(WhereMaskSet *pMaskSet, Select *pS)
static SQLITE_NOINLINE int exprMightBeIndexed2 (SrcList *pFrom, int *aiCurCol, Expr *pExpr, int j)
static int exprMightBeIndexed(SrcList *pFrom, int *aiCurCol, Expr *pExpr, int op)
static void whereAddLimitExpr(WhereClause *pWC, int iReg, Expr *pExpr, int iCsr, int eMatchOp)
static SQLITE_NOINLINE Bitmask sqlite3WhereExprUsageFull (WhereMaskSet *pMaskSet, Expr *p)
static int whereLoopResize(sqlite3*, WhereLoop*, int)
static void whereOrMove(WhereOrSet *pDest, WhereOrSet *pSrc)
static int whereOrInsert(WhereOrSet *pSet, Bitmask prereq, LogEst rRun, LogEst nOut)
static void createMask(WhereMaskSet *pMaskSet, int iCursor)
static Expr *whereRightSubexprIsColumn(Expr *p)
static SQLITE_NOINLINE const char * indexInAffinityOk (Parse *pParse, WhereTerm *pTerm, u8 idxaff)
static WhereTerm *whereScanNext(WhereScan *pScan)
static SQLITE_NOINLINE WhereTerm * whereScanInitIndexExpr (WhereScan *pScan)
static WhereTerm *whereScanInit(WhereScan *pScan, WhereClause *pWC, int iCur, int iColumn, u32 opMask, Index *pIdx)
static int findIndexCol(Parse *pParse, ExprList *pList, int iBase, Index *pIdx, int iCol)
static int indexColumnNotNull(Index *pIdx, int iCol)
static int isDistinctRedundant(Parse *pParse, SrcList *pTabList, WhereClause *pWC, ExprList *pDistinct)
static LogEst estLog(LogEst N)
static void translateColumnToCopy(Parse *pParse, int iStart, int iTabCur, int iRegister, int iAutoidxCur)
static int constraintCompatibleWithOuterJoin(const WhereTerm *pTerm, const SrcItem *pSrc)
static int termCanDriveIndex(const WhereTerm *pTerm, const SrcItem *pSrc, const Bitmask notReady)
static SQLITE_NOINLINE void constructAutomaticIndex (Parse *pParse, WhereClause *pWC, const Bitmask notReady, WhereLevel *pLevel)
static SQLITE_NOINLINE void sqlite3ConstructBloomFilter (WhereInfo *pWInfo, int iLevel, WhereLevel *pLevel, Bitmask notReady)
static sqlite3_index_info *allocateIndexInfo(WhereInfo *pWInfo, WhereClause *pWC, Bitmask mUnusable, SrcItem *pSrc, u16 *pmNoOmit)
static void freeIndexInfo(sqlite3 *db, sqlite3_index_info *pIdxInfo)
static int vtabBestIndex(Parse *pParse, Table *pTab, sqlite3_index_info *p)
static LogEst whereRangeAdjust(WhereTerm *pTerm, LogEst nNew)
static int whereRangeScanEst(Parse *pParse, WhereLoopBuilder *pBuilder, WhereTerm *pLower, WhereTerm *pUpper, WhereLoop *pLoop)
static void whereLoopInit(WhereLoop *p)
static void whereLoopClearUnion(sqlite3 *db, WhereLoop *p)
static void whereLoopClear(sqlite3 *db, WhereLoop *p)
static int whereLoopXfer(sqlite3 *db, WhereLoop *pTo, WhereLoop *pFrom)
static void whereLoopDelete(sqlite3 *db, WhereLoop *p)
static void whereInfoFree(sqlite3 *db, WhereInfo *pWInfo)
static int whereLoopCheaperProperSubset(const WhereLoop *pX, const WhereLoop *pY)
static void whereLoopAdjustCost(const WhereLoop *p, WhereLoop *pTemplate)
static WhereLoop **whereLoopFindLesser(WhereLoop **ppPrev, const WhereLoop *pTemplate)
static int whereLoopInsert(WhereLoopBuilder *pBuilder, WhereLoop *pTemplate)
static void whereLoopOutputAdjust(WhereClause *pWC, WhereLoop *pLoop, LogEst nRow)
static int whereRangeVectorLen(Parse *pParse, int iCur, Index *pIdx, int nEq, WhereTerm *pTerm)
static int whereLoopAddBtreeIndex(WhereLoopBuilder *pBuilder, SrcItem *pSrc, Index *pProbe, LogEst nInMul)
static int indexMightHelpWithOrderBy(WhereLoopBuilder *pBuilder, Index *pIndex, int iCursor)
static int whereUsablePartialIndex(int iTab, u8 jointype, WhereClause *pWC, Expr *pWhere)
static int exprIsCoveredByIndex(const Expr *pExpr, const Index *pIdx, int iTabCur)
static int whereIsCoveringIndexWalkCallback(Walker *pWalk, Expr *pExpr)
static SQLITE_NOINLINE u32 whereIsCoveringIndex (WhereInfo *pWInfo, Index *pIdx, int iTabCur)
static void whereIndexedExprCleanup(sqlite3 *db, void *pObject)
static void wherePartIdxExpr(Parse *pParse, Index *pIdx, Expr *pPart, Bitmask *pMask, int iIdxCur, SrcItem *pItem)
static int whereLoopAddBtree(WhereLoopBuilder *pBuilder, Bitmask mPrereq)
static int isLimitTerm(WhereTerm *pTerm)
static int allConstraintsUsed(struct sqlite3_index_constraint_usage *aUsage, int nCons)
static int whereLoopAddVirtualOne(WhereLoopBuilder *pBuilder, Bitmask mPrereq, Bitmask mUsable, u16 mExclude, sqlite3_index_info *pIdxInfo, u16 mNoOmit, int *pbIn, int *pbRetryLimit)
static int whereLoopAddVirtual(WhereLoopBuilder *pBuilder, Bitmask mPrereq, Bitmask mUnusable)
static int whereLoopAddOr(WhereLoopBuilder *pBuilder, Bitmask mPrereq, Bitmask mUnusable)
static int whereLoopAddAll(WhereLoopBuilder *pBuilder)
static i8 wherePathSatisfiesOrderBy(WhereInfo *pWInfo, ExprList *pOrderBy, WherePath *pPath, u16 wctrlFlags, u16 nLoop, WhereLoop *pLast, Bitmask *pRevMask)
static LogEst whereSortingCost(WhereInfo *pWInfo, LogEst nRow, int nOrderBy, int nSorted)
static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst)
static SQLITE_NOINLINE void whereInterstageHeuristic (WhereInfo *pWInfo)
static int whereShortCut(WhereLoopBuilder *pBuilder)
static int exprNodeIsDeterministic(Walker *pWalker, Expr *pExpr)
static int exprIsDeterministic(Expr *p)
static SQLITE_NOINLINE Bitmask whereOmitNoopJoin (WhereInfo *pWInfo, Bitmask notReady)
static SQLITE_NOINLINE void whereCheckIfBloomFilterIsUseful (const WhereInfo *pWInfo)
static int exprNodeCanReturnSubtype(Walker *pWalker, Expr *pExpr)
static int sqlite3ExprCanReturnSubtype(Parse *pParse, Expr *pExpr)
static SQLITE_NOINLINE void whereAddIndexedExpr (Parse *pParse, Index *pIdx, int iIdxCur, SrcItem *pTabItem)
static SQLITE_NOINLINE void whereReverseScanOrder (WhereInfo *pWInfo)
static void row_numberStepFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void row_numberValueFunc(sqlite3_context *pCtx)
static void dense_rankStepFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void dense_rankValueFunc(sqlite3_context *pCtx)
static void nth_valueStepFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void nth_valueFinalizeFunc(sqlite3_context *pCtx)
static void first_valueStepFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void first_valueFinalizeFunc(sqlite3_context *pCtx)
static void rankStepFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void rankValueFunc(sqlite3_context *pCtx)
static void percent_rankStepFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void percent_rankInvFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void percent_rankValueFunc(sqlite3_context *pCtx)
static void cume_distStepFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void cume_distInvFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void cume_distValueFunc(sqlite3_context *pCtx)
static void ntileStepFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void ntileInvFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void ntileValueFunc(sqlite3_context *pCtx)
static void last_valueStepFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void last_valueInvFunc(sqlite3_context *pCtx, int nArg, sqlite3_value **apArg)
static void last_valueValueFunc(sqlite3_context *pCtx)
static void last_valueFinalizeFunc(sqlite3_context *pCtx)
static void noopStepFunc(sqlite3_context *p, int n, sqlite3_value **a)
static void noopValueFunc(sqlite3_context *p)
static Window *windowFind(Parse *pParse, Window *pList, const char *zName)
static int selectWindowRewriteExprCb(Walker *pWalker, Expr *pExpr)
static int selectWindowRewriteSelectCb(Walker *pWalker, Select *pSelect)
static void selectWindowRewriteEList(Parse *pParse, Window *pWin, SrcList *pSrc, ExprList *pEList, Table *pTab, ExprList **ppSub)
static ExprList *exprListAppendList(Parse *pParse, ExprList *pList, ExprList *pAppend, int bIntToNull)
static int sqlite3WindowExtraAggFuncDepth(Walker *pWalker, Expr *pExpr)
static int disallowAggregatesInOrderByCb(Walker *pWalker, Expr *pExpr)
static Expr *sqlite3WindowOffsetExpr(Parse *pParse, Expr *pExpr)
static void windowCheckValue(Parse *pParse, int reg, int eCond)
static int windowArgCount(Window *pWin)
static void windowReadPeerValues(WindowCodeArg *p, int csr, int reg)
static void windowAggStep(WindowCodeArg *p, Window *pMWin, int csr, int bInverse, int reg)
static void windowAggFinal(WindowCodeArg *p, int bFin)
static void windowFullScan(WindowCodeArg *p)
static void windowReturnOneRow(WindowCodeArg *p)
static int windowInitAccum(Parse *pParse, Window *pMWin)
static int windowCacheFrame(Window *pMWin)
static void windowIfNewPeer(Parse *pParse, ExprList *pOrderBy, int regNew, int regOld, int addr)
static void windowCodeRangeTest(WindowCodeArg *p, int op, int csr1, int regVal, int csr2, int lbl)
static int windowCodeOp(WindowCodeArg *p, int op, int regCountdown, int jumpOnEof)
static int windowExprGtZero(Parse *pParse, Expr *pExpr)
static void disableLookaside(Parse *pParse)
static void parserDoubleLinkSelect(Parse *pParse, Select *p)
static Select *attachWithToSelect(Parse *pParse, Select *pSelect, With *pWith)
static void *parserStackRealloc(void *pOld, sqlite3_uint64 newSize)
static Expr *tokenExpr(Parse *pParse, int op, Token t)
static void binaryToUnaryIfNull(Parse *pParse, Expr *pY, Expr *pA, int op)
static ExprList *parserAddExprIdListTerm(Parse *pParse, ExprList *pPrior, Token *pIdToken, int hasCollate, int sortOrder)
static int yyGrowStack(yyParser *p)
SQLITE_PRIVATE void sqlite3ParserInit (void *yypRawParser sqlite3ParserCTX_PDECL)
static void yy_destructor(yyParser *yypParser, YYCODETYPE yymajor, YYMINORTYPE *yypminor)
static void yy_pop_parser_stack(yyParser *pParser)
SQLITE_PRIVATE void sqlite3ParserFinalize (void *p)
static YYACTIONTYPE yy_find_shift_action(YYCODETYPE iLookAhead, YYACTIONTYPE stateno)
static YYACTIONTYPE yy_find_reduce_action(YYACTIONTYPE stateno, YYCODETYPE iLookAhead)
static void yyStackOverflow(yyParser *yypParser)
static void yy_shift(yyParser *yypParser, YYACTIONTYPE yyNewState, YYCODETYPE yyMajor, sqlite3ParserTOKENTYPE yyMinor)
static void yy_accept(yyParser*)
static YYACTIONTYPE yy_reduce (yyParser *yypParser, unsigned int yyruleno, int yyLookahead, sqlite3ParserTOKENTYPE yyLookaheadToken sqlite3ParserCTX_PDECL)
static void yy_syntax_error(yyParser *yypParser, int yymajor, sqlite3ParserTOKENTYPE yyminor)
SQLITE_PRIVATE void sqlite3Parser (void *yyp, int yymajor, sqlite3ParserTOKENTYPE yyminor sqlite3ParserARG_PDECL)
static int keywordCode(const char *z, int n, int *pType)
static int getToken(const unsigned char **pz)
static int analyzeWindowKeyword(const unsigned char *z)
static int analyzeOverKeyword(const unsigned char *z, int lastToken)
static int analyzeFilterKeyword(const unsigned char *z, int lastToken)
static int sqlite3TestExtInit(sqlite3 *db)
static SQLITE_NOINLINE int hasHighPrecisionDouble (int rc)
static int setupLookaside(sqlite3 *db, void *pBuf, int sz, int cnt)
static int binCollFunc(void *NotUsed, int nKey1, const void *pKey1, int nKey2, const void *pKey2)
static int rtrimCollFunc(void *pUser, int nKey1, const void *pKey1, int nKey2, const void *pKey2)
static int nocaseCollatingFunc(void *NotUsed, int nKey1, const void *pKey1, int nKey2, const void *pKey2)
static void functionDestroy(sqlite3 *db, FuncDef *p)
static void disconnectAllVtab(sqlite3 *db)
static int connectionIsBusy(sqlite3 *db)
static int sqlite3Close(sqlite3 *db, int forceZombie)
static int sqliteDefaultBusyCallback(void *ptr, int count)
static int createFunctionApi(sqlite3 *db, const char *zFunc, int nArg, int enc, void *p, void (*xSFunc)(sqlite3_context*, int, sqlite3_value**), void (*xStep)(sqlite3_context*, int, sqlite3_value**), void (*xFinal)(sqlite3_context*), void (*xValue)(sqlite3_context*), void (*xInverse)(sqlite3_context*, int, sqlite3_value**), void (*xDestroy)(void*))
static void sqlite3InvalidFunction(sqlite3_context *context, int NotUsed, sqlite3_value **NotUsed2)
SQLITE_API int sqlite3_autovacuum_pages (sqlite3 *db, unsigned int(*xCallback)(void *, const char *, u32, u32, u32), void *pArg, void(*xDestructor)(void *))
static int createCollation(sqlite3 *db, const char *zName, u8 enc, void *pCtx, int (*xCompare)(void*, int, const void*, int, const void*), void (*xDel)(void*))
static const char *uriParameter(const char *zFilename, const char *zParam)
static int openDatabase(const char *zFilename, sqlite3 **ppDb, unsigned int flags, const char *zVfs)
static const char *databaseName(const char *zName)
static char *appendText(char *p, const char *z)
static void jsonReturnStringAsBlob(JsonString*)
static int jsonFuncArgMightBeBinary(sqlite3_value *pJson)
static u32 jsonTranslateBlobToText(const JsonParse*, u32, JsonString*)
static void jsonReturnParse(sqlite3_context*, JsonParse*)
static JsonParse *jsonParseFuncArg(sqlite3_context*, sqlite3_value*, u32)
static void jsonParseFree(JsonParse*)
static u32 jsonbPayloadSize(const JsonParse*, u32, u32*)
static u32 jsonUnescapeOneChar(const char*, u32, u32*)
static void jsonCacheDelete(JsonCache *p)
static void jsonCacheDeleteGeneric(void *p)
static int jsonCacheInsert(sqlite3_context *ctx, JsonParse *pParse)
static JsonParse *jsonCacheSearch(sqlite3_context *ctx, sqlite3_value *pArg)
static void jsonStringZero(JsonString *p)
static void jsonStringInit(JsonString *p, sqlite3_context *pCtx)
static void jsonStringReset(JsonString *p)
static void jsonStringOom(JsonString *p)
static int jsonStringGrow(JsonString *p, u32 N)
static SQLITE_NOINLINE void jsonStringExpandAndAppend (JsonString *p, const char *zIn, u32 N)
static void jsonAppendRaw(JsonString *p, const char *zIn, u32 N)
static void jsonAppendRawNZ(JsonString *p, const char *zIn, u32 N)
static void jsonPrintf(int N, JsonString *p, const char *zFormat, ...)
static SQLITE_NOINLINE void jsonAppendCharExpand (JsonString *p, char c)
static void jsonAppendChar(JsonString *p, char c)
static void jsonStringTrimOneChar(JsonString *p)
static int jsonStringTerminate(JsonString *p)
static void jsonAppendSeparator(JsonString *p)
static void jsonAppendControlChar(JsonString *p, u8 c)
static void jsonAppendString(JsonString *p, const char *zIn, u32 N)
static void jsonAppendSqlValue(JsonString *p, sqlite3_value *pValue)
static void jsonReturnString(JsonString *p, JsonParse *pParse, sqlite3_context *ctx)
static void jsonParseReset(JsonParse *pParse)
static u8 jsonHexToInt(int h)
static u32 jsonHexToInt4(const char *z)
static int jsonIs2Hex(const char *z)
static int jsonIs4Hex(const char *z)
static int json5Whitespace(const char *zIn)
static void jsonWrongNumArgs(sqlite3_context *pCtx, const char *zFuncName)
static int jsonBlobExpand(JsonParse *pParse, u32 N)
static int jsonBlobMakeEditable(JsonParse *pParse, u32 nExtra)
static SQLITE_NOINLINE void jsonBlobExpandAndAppendOneByte (JsonParse *pParse, u8 c)
static void jsonBlobAppendOneByte(JsonParse *pParse, u8 c)
static void jsonBlobAppendNode(JsonParse*, u8, u32, const void*)
static SQLITE_NOINLINE void jsonBlobExpandAndAppendNode (JsonParse *pParse, u8 eType, u32 szPayload, const void *aPayload)
static int jsonBlobChangePayloadSize(JsonParse *pParse, u32 i, u32 szPayload)
static int jsonIs4HexB(const char *z, int *pOp)
static u32 jsonbValidityCheck(const JsonParse *pParse, u32 i, u32 iEnd, u32 iDepth)
static int jsonTranslateTextToBlob(JsonParse *pParse, u32 i)
static int jsonConvertTextToBlob(JsonParse *pParse, sqlite3_context *pCtx)
static void jsonPrettyIndent(JsonPretty *pPretty)
static u32 jsonTranslateBlobToPrettyText(JsonPretty *pPretty, u32 i)
static u32 jsonbArrayCount(JsonParse *pParse, u32 iRoot)
static void jsonAfterEditSizeAdjust(JsonParse *pParse, u32 iRoot)
static void jsonBlobEdit(JsonParse *pParse, u32 iDel, u32 nDel, const u8 *aIns, u32 nIns)
static u32 jsonBytesToBypass(const char *z, u32 n)
static SQLITE_NOINLINE int jsonLabelCompareEscaped (const char *zLeft, u32 nLeft, int rawLeft, const char *zRight, u32 nRight, int rawRight)
static int jsonLabelCompare(const char *zLeft, u32 nLeft, int rawLeft, const char *zRight, u32 nRight, int rawRight)
static u32 jsonLookupStep(JsonParse*, u32, const char*, u32)
static u32 jsonCreateEditSubstructure(JsonParse *pParse, JsonParse *pIns, const char *zTail)
static void jsonReturnTextJsonFromBlob(sqlite3_context *ctx, const u8 *aBlob, u32 nBlob)
static void jsonReturnFromBlob(JsonParse *pParse, u32 i, sqlite3_context *pCtx, int textOnly)
static int jsonFunctionArgToBlob(sqlite3_context *ctx, sqlite3_value *pArg, JsonParse *pParse)
static char *jsonBadPathError(sqlite3_context *ctx, const char *zPath)
static void jsonInsertIntoBlob(sqlite3_context *ctx, int argc, sqlite3_value **argv, int eEdit)
static int jsonArgIsJsonb(sqlite3_value *pArg, JsonParse *p)
static void jsonQuoteFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonArrayFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonArrayLengthFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static int jsonAllDigits(const char *z, int n)
static int jsonAllAlphanum(const char *z, int n)
static void jsonExtractFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static int jsonMergePatch(JsonParse *pTarget, u32 iTarget, const JsonParse *pPatch, u32 iPatch)
static void jsonPatchFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonObjectFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonRemoveFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonReplaceFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonSetFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonTypeFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonPrettyFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonValidFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonErrorFunc(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonArrayStep(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonArrayCompute(sqlite3_context *ctx, int isFinal)
static void jsonArrayValue(sqlite3_context *ctx)
static void jsonArrayFinal(sqlite3_context *ctx)
static void jsonGroupInverse(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonObjectStep(sqlite3_context *ctx, int argc, sqlite3_value **argv)
static void jsonObjectCompute(sqlite3_context *ctx, int isFinal)
static void jsonObjectValue(sqlite3_context *ctx)
static void jsonObjectFinal(sqlite3_context *ctx)
static int jsonEachConnect(sqlite3 *db, void *pAux, int argc, const char *const *argv, sqlite3_vtab **ppVtab, char **pzErr)
static int jsonEachDisconnect(sqlite3_vtab *pVtab)
static int jsonEachOpenEach(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor)
static int jsonEachOpenTree(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor)
static void jsonEachCursorReset(JsonEachCursor *p)
static int jsonEachClose(sqlite3_vtab_cursor *cur)
static int jsonEachEof(sqlite3_vtab_cursor *cur)
static int jsonSkipLabel(JsonEachCursor *p)
static void jsonAppendPathName(JsonEachCursor *p)
static int jsonEachNext(sqlite3_vtab_cursor *cur)
static int jsonEachPathLength(JsonEachCursor *p)
static int jsonEachColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int iColumn)
static int jsonEachRowid(sqlite3_vtab_cursor *cur, sqlite_int64 *pRowid)
static int jsonEachBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo)
static int jsonEachFilter(sqlite3_vtab_cursor *cur, int idxNum, const char *idxStr, int argc, sqlite3_value **argv)

Variables

SQLITE_API const char sqlite3_version [] = SQLITE_VERSION
SQLITE_API char * sqlite3_temp_directory = 0
SQLITE_API char * sqlite3_data_directory = 0
const int sqlite3one = 1
SQLITE_PRIVATE u32 sqlite3WhereTrace = 0
static const char *const sqlite3azCompileOpt[]
SQLITE_PRIVATE const unsigned char sqlite3UpperToLower []
SQLITE_PRIVATE const unsigned char * sqlite3aLTb = &sqlite3UpperToLower[256-OP_Ne]
SQLITE_PRIVATE const unsigned char * sqlite3aEQb = &sqlite3UpperToLower[256+6-OP_Ne]
SQLITE_PRIVATE const unsigned char * sqlite3aGTb = &sqlite3UpperToLower[256+12-OP_Ne]
SQLITE_PRIVATE const unsigned char sqlite3CtypeMap [256]
SQLITE_PRIVATE SQLITE_WSD struct Sqlite3Config sqlite3Config
SQLITE_PRIVATE FuncDefHash sqlite3BuiltinFunctions
SQLITE_PRIVATE int sqlite3PendingByte = 0x40000000
SQLITE_PRIVATE u32 sqlite3TreeTrace = 0
SQLITE_PRIVATE const unsigned char sqlite3OpcodeProperty [] = OPFLG_INITIALIZER
SQLITE_PRIVATE const char sqlite3StrBINARY [] = "BINARY"
SQLITE_PRIVATE const unsigned char sqlite3StdTypeLen [] = { 3, 4, 3, 7, 4, 4 }
SQLITE_PRIVATE const char sqlite3StdTypeAffinity [] = { SQLITE_AFF_NUMERIC, SQLITE_AFF_BLOB, SQLITE_AFF_INTEGER, SQLITE_AFF_INTEGER, SQLITE_AFF_REAL, SQLITE_AFF_TEXT}
SQLITE_PRIVATE const char * sqlite3StdType [] = { "ANY", "BLOB", "INT", "INTEGER", "REAL", "TEXT"}
static SQLITE_WSD struct sqlite3StatType sqlite3Stat = { {0,}, {0,} }
static const char statMutex[] = {0, 1, 1, 0, 0, 0, 0, 1, 0, 0,}
u8 nName
char zName[7]
float rLimit
float rXform
static const struct [anonymous] aXformType[] = {{6, "second", 4.6427e+14, 1.0}, {6, "minute", 7.7379e+12, 60.0}, {4, "hour", 1.2897e+11, 3600.0}, {3, "day", 5373485.0, 86400.0}, {5, "month", 176546.0, 30.0 * 86400.0}, {4, "year", 14713.0, 365.0 * 86400.0},}
static sqlite3_vfs *SQLITE_WSD vfsList = 0
static SQLITE_WSD struct BenignMallocHooks sqlite3Hooks = { 0, 0 }
static SQLITE_WSD struct Mem0Global mem0 = { 0, SQLITE_MAX_MEMORY, SQLITE_MAX_MEMORY, 0 }
static const char aDigits[] = "0123456789ABCDEF0123456789abcdef"
static const char aPrefix[] = "-x0\000X0"
static const et_info fmtinfo[] = {{'d', 10, 1, etDECIMAL, 0, 0}, {'s', 0, 4, etSTRING, 0, 0}, {'g', 0, 1, etGENERIC, 30, 0}, {'z', 0, 4, etDYNSTRING, 0, 0}, {'q', 0, 4, etSQLESCAPE, 0, 0}, {'Q', 0, 4, etSQLESCAPE2, 0, 0}, {'w', 0, 4, etSQLESCAPE3, 0, 0}, {'c', 0, 0, etCHARX, 0, 0}, {'o', 8, 0, etRADIX, 0, 2}, {'u', 10, 0, etDECIMAL, 0, 0}, {'x', 16, 0, etRADIX, 16, 1}, {'X', 16, 0, etRADIX, 0, 4}, {'f', 0, 1, etFLOAT, 0, 0}, {'e', 0, 1, etEXP, 30, 0}, {'E', 0, 1, etEXP, 14, 0}, {'G', 0, 1, etGENERIC, 14, 0}, {'i', 10, 1, etDECIMAL, 0, 0}, {'n', 0, 0, etSIZE, 0, 0}, {'%', 0, 0, etPERCENT, 0, 0}, {'p', 16, 0, etPOINTER, 0, 1}, {'T', 0, 0, etTOKEN, 0, 0}, {'S', 0, 0, etSRCITEM, 0, 0}, {'r', 10, 1, etORDINAL, 0, 0},}
static sqlite3_str sqlite3OomStr = {0, 0, 0, 0, 0, SQLITE_NOMEM, 0}
static SQLITE_WSD struct sqlite3PrngType sqlite3Prng
static SQLITE_WSD struct sqlite3PrngType sqlite3SavedPrng
static const unsigned char sqlite3Utf8Trans1[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00,}
static struct MemFS memdb_g
static void(*)(void) memdbDlSym (sqlite3_vfs *pVfs, void *p, const char *zSym)
static sqlite3_vfs memdb_vfs = {2, 0, 1024, 0, "memdb", 0, memdbOpen, 0, memdbAccess, memdbFullPathname, memdbDlOpen, memdbDlError, memdbDlSym, memdbDlClose, memdbRandomness, memdbSleep, 0, memdbGetLastError, memdbCurrentTimeInt64, 0, 0, 0,}
static const sqlite3_io_methods memdb_io_methods = {3, memdbClose, memdbRead, memdbWrite, memdbTruncate, memdbSync, memdbFileSize, memdbLock, memdbUnlock, 0, memdbFileControl, 0, memdbDeviceCharacteristics, 0, 0, 0, 0, memdbFetch, memdbUnfetch}
static SQLITE_WSD struct PCacheGlobal pcache1_g
static const unsigned char aJournalMagic[] = {0xd9, 0xd5, 0x05, 0xf9, 0x20, 0xa1, 0x63, 0xd7,}
static const char zMagicHeader[] = SQLITE_FILE_HEADER
static BtShared *SQLITE_WSD sqlite3SharedCacheList = 0
SQLITE_PRIVATE const u8 sqlite3SmallTypeSizes [128] = { 0, 1, 2, 3, 4, 6, 8, 8, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57}
static const char *const azExplainColNames8[] = {"addr", "opcode", "p1", "p2", "p3", "p4", "p5", "comment", "id", "parent", "notused", "detail"}
static const u16 azExplainColNames16data[] = {'a', 'd', 'd', 'r', 0, 'o', 'p', 'c', 'o', 'd', 'e', 0, 'p', '1', 0, 'p', '2', 0, 'p', '3', 0, 'p', '4', 0, 'p', '5', 0, 'c', 'o', 'm', 'm', 'e', 'n', 't', 0, 'i', 'd', 0, 'p', 'a', 'r', 'e', 'n', 't', 0, 'n', 'o', 't', 'u', 's', 'e', 'd', 0, 'd', 'e', 't', 'a', 'i', 'l', 0}
static const u8 iExplainColNames16[] = {0, 5, 12, 15, 18, 21, 24, 27, 35, 38, 45, 53}
static const struct sqlite3_io_methods MemJournalMethods = {1, memjrnlClose, memjrnlRead, memjrnlWrite, memjrnlTruncate, memjrnlSync, memjrnlFileSize, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
static const struct ExprList_item zeroItem = {0}
static const FuncDef statInitFuncdef = {4, SQLITE_UTF8, 0, 0, statInit, 0, 0, 0, "stat_init", {0}}
static const FuncDef statPushFuncdef = {2 + IsStat4, SQLITE_UTF8, 0, 0, statPush, 0, 0, 0, "stat_push", {0}}
static const FuncDef statGetFuncdef = {1 + IsStat4, SQLITE_UTF8, 0, 0, statGet, 0, 0, 0, "stat_get", {0}}
static const struct compareInfo globInfo = {'*', '?', '[', 0}
static const struct compareInfo likeInfoNorm = {'%', '_', 0, 1}
static const struct compareInfo likeInfoAlt = {'%', '_', 0, 0}
static const char hexdigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}
static SQLITE_WSD struct sqlite3AutoExtList sqlite3Autoext = { 0, 0 }
static const char *const pragCName[]
static const PragmaName aPragmaName[]
static const sqlite3_module pragmaVtabModule = {0, 0, pragmaVtabConnect, pragmaVtabBestIndex, pragmaVtabDisconnect, 0, pragmaVtabOpen, pragmaVtabClose, pragmaVtabFilter, pragmaVtabNext, pragmaVtabEof, pragmaVtabColumn, pragmaVtabRowid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
static const char row_numberName[] = "row_number"
static const char dense_rankName[] = "dense_rank"
static const char rankName[] = "rank"
static const char percent_rankName[] = "percent_rank"
static const char cume_distName[] = "cume_dist"
static const char ntileName[] = "ntile"
static const char last_valueName[] = "last_value"
static const char nth_valueName[] = "nth_value"
static const char first_valueName[] = "first_value"
static const char leadName[] = "lead"
static const char lagName[] = "lag"
static const YYACTIONTYPE yy_action[]
static const YYCODETYPE yy_lookahead[]
static const unsigned short int yy_shift_ofst[]
static const short yy_reduce_ofst[]
static const YYACTIONTYPE yy_default[]
static const YYCODETYPE yyFallback[]
static const YYCODETYPE yyRuleInfoLhs[]
static const signed char yyRuleInfoNRhs[]
static const unsigned char aiClass[]
static const char zKWText[666]
static const unsigned char aKWHash[127] = {84, 92, 134, 82, 105, 29, 0, 0, 94, 0, 85, 72, 0, 53, 35, 86, 15, 0, 42, 97, 54, 89, 135, 19, 0, 0, 140, 0, 40, 129, 0, 22, 107, 0, 9, 0, 0, 123, 80, 0, 78, 6, 0, 65, 103, 147, 0, 136, 115, 0, 0, 48, 0, 90, 24, 0, 17, 0, 27, 70, 23, 26, 5, 60, 142, 110, 122, 0, 73, 91, 71, 145, 61, 120, 74, 0, 49, 0, 11, 41, 0, 113, 0, 0, 0, 109, 10, 111, 116, 125, 14, 50, 124, 0, 100, 0, 18, 121, 144, 56, 130, 139, 88, 83, 37, 30, 126, 0, 0, 108, 51, 131, 128, 0, 34, 0, 0, 132, 0, 98, 38, 39, 0, 20, 45, 117, 93,}
static const unsigned char aKWNext[148] = {0, 0, 0, 0, 0, 4, 0, 43, 0, 0, 106, 114, 0, 0, 0, 2, 0, 0, 143, 0, 0, 0, 13, 0, 0, 0, 0, 141, 0, 0, 119, 52, 0, 0, 137, 12, 0, 0, 62, 0, 138, 0, 133, 0, 0, 36, 0, 0, 28, 77, 0, 0, 0, 0, 59, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 146, 3, 0, 58, 0, 1, 75, 0, 0, 0, 31, 0, 0, 0, 0, 0, 127, 0, 104, 0, 64, 66, 63, 0, 0, 0, 0, 0, 46, 0, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 101, 0, 112, 21, 7, 67, 0, 79, 96, 118, 0, 0, 68, 0, 0, 99, 44, 0, 55, 0, 76, 0, 95, 32, 33, 57, 25, 0, 102, 0, 0, 87,}
static const unsigned char aKWLen[148] = {0, 7, 7, 5, 4, 6, 4, 5, 3, 6, 7, 3, 6, 6, 7, 7, 3, 8, 2, 6, 5, 4, 4, 3, 10, 4, 7, 6, 9, 4, 2, 6, 5, 9, 9, 4, 7, 3, 2, 4, 4, 6, 11, 6, 2, 7, 5, 5, 9, 6, 10, 4, 6, 2, 3, 7, 5, 9, 6, 6, 4, 5, 5, 10, 6, 5, 7, 4, 5, 7, 6, 7, 7, 6, 5, 7, 3, 7, 4, 7, 6, 12, 9, 4, 6, 5, 4, 7, 6, 12, 8, 8, 2, 6, 6, 7, 6, 4, 5, 9, 5, 5, 6, 3, 4, 9, 13, 2, 2, 4, 6, 6, 8, 5, 17, 12, 7, 9, 4, 4, 6, 7, 5, 9, 4, 4, 5, 2, 5, 8, 6, 4, 9, 5, 8, 4, 3, 9, 5, 5, 6, 4, 6, 2, 2, 9, 3, 7,}
static const unsigned short int aKWOffset[148] = {0, 0, 2, 2, 8, 9, 14, 16, 20, 23, 25, 25, 29, 33, 36, 41, 46, 48, 53, 54, 59, 62, 65, 67, 69, 78, 81, 86, 90, 90, 94, 99, 101, 105, 111, 119, 123, 123, 123, 126, 129, 132, 137, 142, 146, 147, 152, 156, 160, 168, 174, 181, 184, 184, 187, 189, 195, 198, 206, 211, 216, 219, 222, 226, 236, 239, 244, 244, 248, 252, 259, 265, 271, 277, 277, 283, 284, 288, 295, 299, 306, 312, 324, 333, 335, 341, 346, 348, 355, 359, 370, 377, 378, 385, 391, 397, 402, 408, 412, 415, 424, 429, 433, 439, 441, 444, 453, 455, 457, 466, 470, 476, 482, 490, 495, 495, 495, 511, 520, 523, 527, 532, 539, 544, 553, 557, 560, 565, 567, 571, 579, 585, 588, 597, 602, 610, 610, 614, 623, 628, 633, 639, 642, 645, 648, 650, 655, 659,}
static const unsigned char aKWCode[148]
static int (*const sqlite3BuiltinExtensions[])(sqlite3*)
static const int aHardLimit[] = {SQLITE_MAX_LENGTH, SQLITE_MAX_SQL_LENGTH, SQLITE_MAX_COLUMN, SQLITE_MAX_EXPR_DEPTH, SQLITE_MAX_COMPOUND_SELECT, SQLITE_MAX_VDBE_OP, SQLITE_MAX_FUNCTION_ARG, SQLITE_MAX_ATTACHED, SQLITE_MAX_LIKE_PATTERN_LENGTH, SQLITE_MAX_VARIABLE_NUMBER, SQLITE_MAX_TRIGGER_DEPTH, SQLITE_MAX_WORKER_THREADS,}
static const char *const jsonbType[] = {"null", "true", "false", "integer", "integer", "real", "real", "text", "text", "text", "text", "array", "object", "", "", "", ""}
static const char jsonIsSpace[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}
static const char jsonSpaces[] = "\011\012\015\040"
static const char jsonIsOk[256] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
static const struct NanInfName aNanInfName[] = {{'i', 'I', 3, JSONB_FLOAT, 7, "inf", "9.0e999"}, {'i', 'I', 8, JSONB_FLOAT, 7, "infinity", "9.0e999"}, {'n', 'N', 3, JSONB_NULL, 4, "NaN", "null"}, {'q', 'Q', 4, JSONB_NULL, 4, "QNaN", "null"}, {'s', 'S', 4, JSONB_NULL, 4, "SNaN", "null"},}
static sqlite3_module jsonEachModule = {0, 0, jsonEachConnect, jsonEachBestIndex, jsonEachDisconnect, 0, jsonEachOpenEach, jsonEachClose, jsonEachFilter, jsonEachNext, jsonEachEof, jsonEachColumn, jsonEachRowid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
static sqlite3_module jsonTreeModule = {0, 0, jsonEachConnect, jsonEachBestIndex, jsonEachDisconnect, 0, jsonEachOpenTree, jsonEachClose, jsonEachFilter, jsonEachNext, jsonEachEof, jsonEachColumn, jsonEachRowid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
file sqlite3.h
#include <stdarg.h>

Defines

SQLITE_EXTERN
SQLITE_API
SQLITE_CDECL
SQLITE_APICALL
SQLITE_STDCALL
SQLITE_CALLBACK
SQLITE_SYSAPI
SQLITE_DEPRECATED
SQLITE_EXPERIMENTAL
SQLITE_VERSION
SQLITE_VERSION_NUMBER
SQLITE_SOURCE_ID
SQLITE_OK
SQLITE_ERROR
SQLITE_INTERNAL
SQLITE_PERM
SQLITE_ABORT
SQLITE_BUSY
SQLITE_LOCKED
SQLITE_NOMEM
SQLITE_READONLY
SQLITE_INTERRUPT
SQLITE_IOERR
SQLITE_CORRUPT
SQLITE_NOTFOUND
SQLITE_FULL
SQLITE_CANTOPEN
SQLITE_PROTOCOL
SQLITE_EMPTY
SQLITE_SCHEMA
SQLITE_TOOBIG
SQLITE_CONSTRAINT
SQLITE_MISMATCH
SQLITE_MISUSE
SQLITE_NOLFS
SQLITE_AUTH
SQLITE_FORMAT
SQLITE_RANGE
SQLITE_NOTADB
SQLITE_NOTICE
SQLITE_WARNING
SQLITE_ROW
SQLITE_DONE
SQLITE_ERROR_MISSING_COLLSEQ
SQLITE_ERROR_RETRY
SQLITE_ERROR_SNAPSHOT
SQLITE_IOERR_READ
SQLITE_IOERR_SHORT_READ
SQLITE_IOERR_WRITE
SQLITE_IOERR_FSYNC
SQLITE_IOERR_DIR_FSYNC
SQLITE_IOERR_TRUNCATE
SQLITE_IOERR_FSTAT
SQLITE_IOERR_UNLOCK
SQLITE_IOERR_RDLOCK
SQLITE_IOERR_DELETE
SQLITE_IOERR_BLOCKED
SQLITE_IOERR_NOMEM
SQLITE_IOERR_ACCESS
SQLITE_IOERR_CHECKRESERVEDLOCK
SQLITE_IOERR_LOCK
SQLITE_IOERR_CLOSE
SQLITE_IOERR_DIR_CLOSE
SQLITE_IOERR_SHMOPEN
SQLITE_IOERR_SHMSIZE
SQLITE_IOERR_SHMLOCK
SQLITE_IOERR_SHMMAP
SQLITE_IOERR_SEEK
SQLITE_IOERR_DELETE_NOENT
SQLITE_IOERR_MMAP
SQLITE_IOERR_GETTEMPPATH
SQLITE_IOERR_CONVPATH
SQLITE_IOERR_VNODE
SQLITE_IOERR_AUTH
SQLITE_IOERR_BEGIN_ATOMIC
SQLITE_IOERR_COMMIT_ATOMIC
SQLITE_IOERR_ROLLBACK_ATOMIC
SQLITE_IOERR_DATA
SQLITE_IOERR_CORRUPTFS
SQLITE_IOERR_IN_PAGE
SQLITE_LOCKED_SHAREDCACHE
SQLITE_LOCKED_VTAB
SQLITE_BUSY_RECOVERY
SQLITE_BUSY_SNAPSHOT
SQLITE_BUSY_TIMEOUT
SQLITE_CANTOPEN_NOTEMPDIR
SQLITE_CANTOPEN_ISDIR
SQLITE_CANTOPEN_FULLPATH
SQLITE_CANTOPEN_CONVPATH
SQLITE_CANTOPEN_DIRTYWAL
SQLITE_CANTOPEN_SYMLINK
SQLITE_CORRUPT_VTAB
SQLITE_CORRUPT_SEQUENCE
SQLITE_CORRUPT_INDEX
SQLITE_READONLY_RECOVERY
SQLITE_READONLY_CANTLOCK
SQLITE_READONLY_ROLLBACK
SQLITE_READONLY_DBMOVED
SQLITE_READONLY_CANTINIT
SQLITE_READONLY_DIRECTORY
SQLITE_ABORT_ROLLBACK
SQLITE_CONSTRAINT_CHECK
SQLITE_CONSTRAINT_COMMITHOOK
SQLITE_CONSTRAINT_FOREIGNKEY
SQLITE_CONSTRAINT_FUNCTION
SQLITE_CONSTRAINT_NOTNULL
SQLITE_CONSTRAINT_PRIMARYKEY
SQLITE_CONSTRAINT_TRIGGER
SQLITE_CONSTRAINT_UNIQUE
SQLITE_CONSTRAINT_VTAB
SQLITE_CONSTRAINT_ROWID
SQLITE_CONSTRAINT_PINNED
SQLITE_CONSTRAINT_DATATYPE
SQLITE_NOTICE_RECOVER_WAL
SQLITE_NOTICE_RECOVER_ROLLBACK
SQLITE_NOTICE_RBU
SQLITE_WARNING_AUTOINDEX
SQLITE_AUTH_USER
SQLITE_OK_LOAD_PERMANENTLY
SQLITE_OK_SYMLINK
SQLITE_OPEN_READONLY
SQLITE_OPEN_READWRITE
SQLITE_OPEN_CREATE
SQLITE_OPEN_DELETEONCLOSE
SQLITE_OPEN_EXCLUSIVE
SQLITE_OPEN_AUTOPROXY
SQLITE_OPEN_URI
SQLITE_OPEN_MEMORY
SQLITE_OPEN_MAIN_DB
SQLITE_OPEN_TEMP_DB
SQLITE_OPEN_TRANSIENT_DB
SQLITE_OPEN_MAIN_JOURNAL
SQLITE_OPEN_TEMP_JOURNAL
SQLITE_OPEN_SUBJOURNAL
SQLITE_OPEN_SUPER_JOURNAL
SQLITE_OPEN_NOMUTEX
SQLITE_OPEN_FULLMUTEX
SQLITE_OPEN_SHAREDCACHE
SQLITE_OPEN_PRIVATECACHE
SQLITE_OPEN_WAL
SQLITE_OPEN_NOFOLLOW
SQLITE_OPEN_EXRESCODE
SQLITE_OPEN_MASTER_JOURNAL
SQLITE_IOCAP_ATOMIC
SQLITE_IOCAP_ATOMIC512
SQLITE_IOCAP_ATOMIC1K
SQLITE_IOCAP_ATOMIC2K
SQLITE_IOCAP_ATOMIC4K
SQLITE_IOCAP_ATOMIC8K
SQLITE_IOCAP_ATOMIC16K
SQLITE_IOCAP_ATOMIC32K
SQLITE_IOCAP_ATOMIC64K
SQLITE_IOCAP_SAFE_APPEND
SQLITE_IOCAP_SEQUENTIAL
SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN
SQLITE_IOCAP_POWERSAFE_OVERWRITE
SQLITE_IOCAP_IMMUTABLE
SQLITE_IOCAP_BATCH_ATOMIC
SQLITE_LOCK_NONE
SQLITE_LOCK_SHARED
SQLITE_LOCK_RESERVED
SQLITE_LOCK_PENDING
SQLITE_LOCK_EXCLUSIVE
SQLITE_SYNC_NORMAL
SQLITE_SYNC_FULL
SQLITE_SYNC_DATAONLY
SQLITE_FCNTL_LOCKSTATE
SQLITE_FCNTL_GET_LOCKPROXYFILE
SQLITE_FCNTL_SET_LOCKPROXYFILE
SQLITE_FCNTL_LAST_ERRNO
SQLITE_FCNTL_SIZE_HINT
SQLITE_FCNTL_CHUNK_SIZE
SQLITE_FCNTL_FILE_POINTER
SQLITE_FCNTL_SYNC_OMITTED
SQLITE_FCNTL_WIN32_AV_RETRY
SQLITE_FCNTL_PERSIST_WAL
SQLITE_FCNTL_OVERWRITE
SQLITE_FCNTL_VFSNAME
SQLITE_FCNTL_POWERSAFE_OVERWRITE
SQLITE_FCNTL_PRAGMA
SQLITE_FCNTL_BUSYHANDLER
SQLITE_FCNTL_TEMPFILENAME
SQLITE_FCNTL_MMAP_SIZE
SQLITE_FCNTL_TRACE
SQLITE_FCNTL_HAS_MOVED
SQLITE_FCNTL_SYNC
SQLITE_FCNTL_COMMIT_PHASETWO
SQLITE_FCNTL_WIN32_SET_HANDLE
SQLITE_FCNTL_WAL_BLOCK
SQLITE_FCNTL_ZIPVFS
SQLITE_FCNTL_RBU
SQLITE_FCNTL_VFS_POINTER
SQLITE_FCNTL_JOURNAL_POINTER
SQLITE_FCNTL_WIN32_GET_HANDLE
SQLITE_FCNTL_PDB
SQLITE_FCNTL_BEGIN_ATOMIC_WRITE
SQLITE_FCNTL_COMMIT_ATOMIC_WRITE
SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE
SQLITE_FCNTL_LOCK_TIMEOUT
SQLITE_FCNTL_DATA_VERSION
SQLITE_FCNTL_SIZE_LIMIT
SQLITE_FCNTL_CKPT_DONE
SQLITE_FCNTL_RESERVE_BYTES
SQLITE_FCNTL_CKPT_START
SQLITE_FCNTL_EXTERNAL_READER
SQLITE_FCNTL_CKSM_FILE
SQLITE_FCNTL_RESET_CACHE
SQLITE_GET_LOCKPROXYFILE
SQLITE_SET_LOCKPROXYFILE
SQLITE_LAST_ERRNO
SQLITE_ACCESS_EXISTS
SQLITE_ACCESS_READWRITE
SQLITE_ACCESS_READ
SQLITE_SHM_UNLOCK
SQLITE_SHM_LOCK
SQLITE_SHM_SHARED
SQLITE_SHM_EXCLUSIVE
SQLITE_SHM_NLOCK
SQLITE_CONFIG_SINGLETHREAD
SQLITE_CONFIG_MULTITHREAD
SQLITE_CONFIG_SERIALIZED
SQLITE_CONFIG_MALLOC
SQLITE_CONFIG_GETMALLOC
SQLITE_CONFIG_SCRATCH
SQLITE_CONFIG_PAGECACHE
SQLITE_CONFIG_HEAP
SQLITE_CONFIG_MEMSTATUS
SQLITE_CONFIG_MUTEX
SQLITE_CONFIG_GETMUTEX
SQLITE_CONFIG_LOOKASIDE
SQLITE_CONFIG_PCACHE
SQLITE_CONFIG_GETPCACHE
SQLITE_CONFIG_LOG
SQLITE_CONFIG_URI
SQLITE_CONFIG_PCACHE2
SQLITE_CONFIG_GETPCACHE2
SQLITE_CONFIG_COVERING_INDEX_SCAN
SQLITE_CONFIG_SQLLOG
SQLITE_CONFIG_MMAP_SIZE
SQLITE_CONFIG_WIN32_HEAPSIZE
SQLITE_CONFIG_PCACHE_HDRSZ
SQLITE_CONFIG_PMASZ
SQLITE_CONFIG_STMTJRNL_SPILL
SQLITE_CONFIG_SMALL_MALLOC
SQLITE_CONFIG_SORTERREF_SIZE
SQLITE_CONFIG_MEMDB_MAXSIZE
SQLITE_CONFIG_ROWID_IN_VIEW
SQLITE_DBCONFIG_MAINDBNAME
SQLITE_DBCONFIG_LOOKASIDE
SQLITE_DBCONFIG_ENABLE_FKEY
SQLITE_DBCONFIG_ENABLE_TRIGGER
SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
SQLITE_DBCONFIG_ENABLE_QPSG
SQLITE_DBCONFIG_TRIGGER_EQP
SQLITE_DBCONFIG_RESET_DATABASE
SQLITE_DBCONFIG_DEFENSIVE
SQLITE_DBCONFIG_WRITABLE_SCHEMA
SQLITE_DBCONFIG_LEGACY_ALTER_TABLE
SQLITE_DBCONFIG_DQS_DML
SQLITE_DBCONFIG_DQS_DDL
SQLITE_DBCONFIG_ENABLE_VIEW
SQLITE_DBCONFIG_LEGACY_FILE_FORMAT
SQLITE_DBCONFIG_TRUSTED_SCHEMA
SQLITE_DBCONFIG_STMT_SCANSTATUS
SQLITE_DBCONFIG_REVERSE_SCANORDER
SQLITE_DBCONFIG_MAX
SQLITE_DENY
SQLITE_IGNORE
SQLITE_CREATE_INDEX
SQLITE_CREATE_TABLE
SQLITE_CREATE_TEMP_INDEX
SQLITE_CREATE_TEMP_TABLE
SQLITE_CREATE_TEMP_TRIGGER
SQLITE_CREATE_TEMP_VIEW
SQLITE_CREATE_TRIGGER
SQLITE_CREATE_VIEW
SQLITE_DELETE
SQLITE_DROP_INDEX
SQLITE_DROP_TABLE
SQLITE_DROP_TEMP_INDEX
SQLITE_DROP_TEMP_TABLE
SQLITE_DROP_TEMP_TRIGGER
SQLITE_DROP_TEMP_VIEW
SQLITE_DROP_TRIGGER
SQLITE_DROP_VIEW
SQLITE_INSERT
SQLITE_PRAGMA
SQLITE_READ
SQLITE_SELECT
SQLITE_TRANSACTION
SQLITE_UPDATE
SQLITE_ATTACH
SQLITE_DETACH
SQLITE_ALTER_TABLE
SQLITE_REINDEX
SQLITE_ANALYZE
SQLITE_CREATE_VTABLE
SQLITE_DROP_VTABLE
SQLITE_FUNCTION
SQLITE_SAVEPOINT
SQLITE_COPY
SQLITE_RECURSIVE
SQLITE_TRACE_STMT
SQLITE_TRACE_PROFILE
SQLITE_TRACE_ROW
SQLITE_TRACE_CLOSE
SQLITE_LIMIT_LENGTH
SQLITE_LIMIT_SQL_LENGTH
SQLITE_LIMIT_COLUMN
SQLITE_LIMIT_EXPR_DEPTH
SQLITE_LIMIT_COMPOUND_SELECT
SQLITE_LIMIT_VDBE_OP
SQLITE_LIMIT_FUNCTION_ARG
SQLITE_LIMIT_ATTACHED
SQLITE_LIMIT_LIKE_PATTERN_LENGTH
SQLITE_LIMIT_VARIABLE_NUMBER
SQLITE_LIMIT_TRIGGER_DEPTH
SQLITE_LIMIT_WORKER_THREADS
SQLITE_PREPARE_PERSISTENT
SQLITE_PREPARE_NORMALIZE
SQLITE_PREPARE_NO_VTAB
SQLITE_INTEGER
SQLITE_FLOAT
SQLITE_BLOB
SQLITE_NULL
SQLITE_TEXT
SQLITE3_TEXT
SQLITE_UTF8
SQLITE_UTF16LE
SQLITE_UTF16BE
SQLITE_UTF16
SQLITE_ANY
SQLITE_UTF16_ALIGNED
SQLITE_DETERMINISTIC
SQLITE_DIRECTONLY
SQLITE_SUBTYPE
SQLITE_INNOCUOUS
SQLITE_RESULT_SUBTYPE
SQLITE_STATIC
SQLITE_TRANSIENT
SQLITE_WIN32_DATA_DIRECTORY_TYPE
SQLITE_WIN32_TEMP_DIRECTORY_TYPE
SQLITE_TXN_NONE
SQLITE_TXN_READ
SQLITE_TXN_WRITE
SQLITE_INDEX_SCAN_UNIQUE
SQLITE_INDEX_CONSTRAINT_EQ
SQLITE_INDEX_CONSTRAINT_GT
SQLITE_INDEX_CONSTRAINT_LE
SQLITE_INDEX_CONSTRAINT_LT
SQLITE_INDEX_CONSTRAINT_GE
SQLITE_INDEX_CONSTRAINT_MATCH
SQLITE_INDEX_CONSTRAINT_LIKE
SQLITE_INDEX_CONSTRAINT_GLOB
SQLITE_INDEX_CONSTRAINT_REGEXP
SQLITE_INDEX_CONSTRAINT_NE
SQLITE_INDEX_CONSTRAINT_ISNOT
SQLITE_INDEX_CONSTRAINT_ISNOTNULL
SQLITE_INDEX_CONSTRAINT_ISNULL
SQLITE_INDEX_CONSTRAINT_IS
SQLITE_INDEX_CONSTRAINT_LIMIT
SQLITE_INDEX_CONSTRAINT_OFFSET
SQLITE_INDEX_CONSTRAINT_FUNCTION
SQLITE_MUTEX_FAST
SQLITE_MUTEX_RECURSIVE
SQLITE_MUTEX_STATIC_MAIN
SQLITE_MUTEX_STATIC_MEM
SQLITE_MUTEX_STATIC_MEM2
SQLITE_MUTEX_STATIC_OPEN
SQLITE_MUTEX_STATIC_PRNG
SQLITE_MUTEX_STATIC_LRU
SQLITE_MUTEX_STATIC_LRU2
SQLITE_MUTEX_STATIC_PMEM
SQLITE_MUTEX_STATIC_APP1
SQLITE_MUTEX_STATIC_APP2
SQLITE_MUTEX_STATIC_APP3
SQLITE_MUTEX_STATIC_VFS1
SQLITE_MUTEX_STATIC_VFS2
SQLITE_MUTEX_STATIC_VFS3
SQLITE_MUTEX_STATIC_MASTER
SQLITE_TESTCTRL_FIRST
SQLITE_TESTCTRL_PRNG_SAVE
SQLITE_TESTCTRL_PRNG_RESTORE
SQLITE_TESTCTRL_PRNG_RESET
SQLITE_TESTCTRL_FK_NO_ACTION
SQLITE_TESTCTRL_BITVEC_TEST
SQLITE_TESTCTRL_FAULT_INSTALL
SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS
SQLITE_TESTCTRL_PENDING_BYTE
SQLITE_TESTCTRL_ASSERT
SQLITE_TESTCTRL_ALWAYS
SQLITE_TESTCTRL_RESERVE
SQLITE_TESTCTRL_JSON_SELFCHECK
SQLITE_TESTCTRL_OPTIMIZATIONS
SQLITE_TESTCTRL_ISKEYWORD
SQLITE_TESTCTRL_SCRATCHMALLOC
SQLITE_TESTCTRL_INTERNAL_FUNCTIONS
SQLITE_TESTCTRL_LOCALTIME_FAULT
SQLITE_TESTCTRL_EXPLAIN_STMT
SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD
SQLITE_TESTCTRL_NEVER_CORRUPT
SQLITE_TESTCTRL_VDBE_COVERAGE
SQLITE_TESTCTRL_BYTEORDER
SQLITE_TESTCTRL_ISINIT
SQLITE_TESTCTRL_SORTER_MMAP
SQLITE_TESTCTRL_IMPOSTER
SQLITE_TESTCTRL_PARSER_COVERAGE
SQLITE_TESTCTRL_RESULT_INTREAL
SQLITE_TESTCTRL_PRNG_SEED
SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS
SQLITE_TESTCTRL_SEEK_COUNT
SQLITE_TESTCTRL_TRACEFLAGS
SQLITE_TESTCTRL_TUNE
SQLITE_TESTCTRL_LOGEST
SQLITE_TESTCTRL_USELONGDOUBLE
SQLITE_TESTCTRL_LAST
SQLITE_STATUS_MEMORY_USED
SQLITE_STATUS_PAGECACHE_USED
SQLITE_STATUS_PAGECACHE_OVERFLOW
SQLITE_STATUS_SCRATCH_USED
SQLITE_STATUS_SCRATCH_OVERFLOW
SQLITE_STATUS_MALLOC_SIZE
SQLITE_STATUS_PARSER_STACK
SQLITE_STATUS_PAGECACHE_SIZE
SQLITE_STATUS_SCRATCH_SIZE
SQLITE_STATUS_MALLOC_COUNT
SQLITE_DBSTATUS_LOOKASIDE_USED
SQLITE_DBSTATUS_CACHE_USED
SQLITE_DBSTATUS_SCHEMA_USED
SQLITE_DBSTATUS_STMT_USED
SQLITE_DBSTATUS_LOOKASIDE_HIT
SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE
SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL
SQLITE_DBSTATUS_CACHE_HIT
SQLITE_DBSTATUS_CACHE_MISS
SQLITE_DBSTATUS_CACHE_WRITE
SQLITE_DBSTATUS_DEFERRED_FKS
SQLITE_DBSTATUS_CACHE_USED_SHARED
SQLITE_DBSTATUS_CACHE_SPILL
SQLITE_DBSTATUS_MAX
SQLITE_STMTSTATUS_FULLSCAN_STEP
SQLITE_STMTSTATUS_SORT
SQLITE_STMTSTATUS_AUTOINDEX
SQLITE_STMTSTATUS_VM_STEP
SQLITE_STMTSTATUS_REPREPARE
SQLITE_STMTSTATUS_RUN
SQLITE_STMTSTATUS_FILTER_MISS
SQLITE_STMTSTATUS_FILTER_HIT
SQLITE_STMTSTATUS_MEMUSED
SQLITE_CHECKPOINT_PASSIVE
SQLITE_CHECKPOINT_FULL
SQLITE_CHECKPOINT_RESTART
SQLITE_CHECKPOINT_TRUNCATE
SQLITE_VTAB_CONSTRAINT_SUPPORT
SQLITE_VTAB_INNOCUOUS
SQLITE_VTAB_DIRECTONLY
SQLITE_VTAB_USES_ALL_SCHEMAS
SQLITE_ROLLBACK
SQLITE_FAIL
SQLITE_REPLACE
SQLITE_SCANSTAT_NLOOP
SQLITE_SCANSTAT_NVISIT
SQLITE_SCANSTAT_EST
SQLITE_SCANSTAT_NAME
SQLITE_SCANSTAT_EXPLAIN
SQLITE_SCANSTAT_SELECTID
SQLITE_SCANSTAT_PARENTID
SQLITE_SCANSTAT_NCYCLE
SQLITE_SCANSTAT_COMPLEX
SQLITE_SERIALIZE_NOCOPY
SQLITE_DESERIALIZE_FREEONCLOSE
SQLITE_DESERIALIZE_RESIZEABLE
SQLITE_DESERIALIZE_READONLY
_SQLITE3RTREE_H_
NOT_WITHIN
PARTLY_WITHIN
FULLY_WITHIN
_FTS5_H
FTS5_TOKENIZE_QUERY
FTS5_TOKENIZE_PREFIX
FTS5_TOKENIZE_DOCUMENT
FTS5_TOKENIZE_AUX
FTS5_TOKEN_COLOCATED

Typedefs

typedef struct sqlite3 sqlite3
typedef long long int sqlite_int64
typedef unsigned long long int sqlite_uint64
typedef sqlite_int64 sqlite3_int64
typedef sqlite_uint64 sqlite3_uint64
typedef int (*sqlite3_callback)(void*, int, char**, char**)
typedef struct sqlite3_file sqlite3_file
typedef struct sqlite3_io_methods sqlite3_io_methods
typedef struct sqlite3_mutex sqlite3_mutex
typedef struct sqlite3_api_routines sqlite3_api_routines
typedef const char *sqlite3_filename
typedef struct sqlite3_vfs sqlite3_vfs
typedef void (*sqlite3_syscall_ptr)(void)
typedef struct sqlite3_mem_methods sqlite3_mem_methods
typedef struct sqlite3_stmt sqlite3_stmt
typedef struct sqlite3_value sqlite3_value
typedef struct sqlite3_context sqlite3_context
typedef void (*sqlite3_destructor_type)(void*)
typedef struct sqlite3_vtab sqlite3_vtab
typedef struct sqlite3_index_info sqlite3_index_info
typedef struct sqlite3_vtab_cursor sqlite3_vtab_cursor
typedef struct sqlite3_module sqlite3_module
typedef struct sqlite3_blob sqlite3_blob
typedef struct sqlite3_mutex_methods sqlite3_mutex_methods
typedef struct sqlite3_str sqlite3_str
typedef struct sqlite3_pcache sqlite3_pcache
typedef struct sqlite3_pcache_page sqlite3_pcache_page
typedef struct sqlite3_pcache_methods2 sqlite3_pcache_methods2
typedef struct sqlite3_pcache_methods sqlite3_pcache_methods
typedef struct sqlite3_backup sqlite3_backup
typedef struct sqlite3_snapshot sqlite3_snapshot
typedef struct sqlite3_rtree_geometry sqlite3_rtree_geometry
typedef struct sqlite3_rtree_query_info sqlite3_rtree_query_info
typedef double sqlite3_rtree_dbl
typedef struct Fts5ExtensionApi Fts5ExtensionApi
typedef struct Fts5Context Fts5Context
typedef struct Fts5PhraseIter Fts5PhraseIter
typedef void (*fts5_extension_function)(const Fts5ExtensionApi *pApi, Fts5Context *pFts, sqlite3_context *pCtx, int nVal, sqlite3_value **apVal)
typedef struct Fts5Tokenizer Fts5Tokenizer
typedef struct fts5_tokenizer fts5_tokenizer
typedef struct fts5_api fts5_api

Functions

SQLITE_API const char * sqlite3_libversion (void)
SQLITE_API const char * sqlite3_sourceid (void)
SQLITE_API int sqlite3_libversion_number (void)
SQLITE_API int sqlite3_compileoption_used (const char *zOptName)
SQLITE_API const char * sqlite3_compileoption_get (int N)
SQLITE_API int sqlite3_threadsafe (void)
SQLITE_API int sqlite3_close (sqlite3 *)
SQLITE_API int sqlite3_close_v2 (sqlite3 *)
SQLITE_API int sqlite3_exec (sqlite3 *, const char *sql, int(*callback)(void *, int, char **, char **), void *, char **errmsg)
SQLITE_API int sqlite3_initialize (void)
SQLITE_API int sqlite3_shutdown (void)
SQLITE_API int sqlite3_os_init (void)
SQLITE_API int sqlite3_os_end (void)
SQLITE_API int sqlite3_config (int,...)
SQLITE_API int sqlite3_db_config (sqlite3 *, int op,...)
SQLITE_API int sqlite3_extended_result_codes (sqlite3 *, int onoff)
SQLITE_API sqlite3_int64 sqlite3_last_insert_rowid (sqlite3 *)
SQLITE_API void sqlite3_set_last_insert_rowid (sqlite3 *, sqlite3_int64)
SQLITE_API int sqlite3_changes (sqlite3 *)
SQLITE_API sqlite3_int64 sqlite3_changes64 (sqlite3 *)
SQLITE_API int sqlite3_total_changes (sqlite3 *)
SQLITE_API sqlite3_int64 sqlite3_total_changes64 (sqlite3 *)
SQLITE_API void sqlite3_interrupt (sqlite3 *)
SQLITE_API int sqlite3_is_interrupted (sqlite3 *)
SQLITE_API int sqlite3_complete (const char *sql)
SQLITE_API int sqlite3_complete16 (const void *sql)
SQLITE_API int sqlite3_busy_handler (sqlite3 *, int(*)(void *, int), void *)
SQLITE_API int sqlite3_busy_timeout (sqlite3 *, int ms)
SQLITE_API int sqlite3_get_table (sqlite3 *db, const char *zSql, char ***pazResult, int *pnRow, int *pnColumn, char **pzErrmsg)
SQLITE_API void sqlite3_free_table (char **result)
SQLITE_API char * sqlite3_mprintf (const char *,...)
SQLITE_API char * sqlite3_vmprintf (const char *, va_list)
SQLITE_API char * sqlite3_snprintf (int, char *, const char *,...)
SQLITE_API char * sqlite3_vsnprintf (int, char *, const char *, va_list)
SQLITE_API void * sqlite3_malloc (int)
SQLITE_API void * sqlite3_malloc64 (sqlite3_uint64)
SQLITE_API void * sqlite3_realloc (void *, int)
SQLITE_API void * sqlite3_realloc64 (void *, sqlite3_uint64)
SQLITE_API void sqlite3_free (void *)
SQLITE_API sqlite3_uint64 sqlite3_msize (void *)
SQLITE_API sqlite3_int64 sqlite3_memory_used (void)
SQLITE_API sqlite3_int64 sqlite3_memory_highwater (int resetFlag)
SQLITE_API void sqlite3_randomness (int N, void *P)
SQLITE_API int sqlite3_set_authorizer (sqlite3 *, int(*xAuth)(void *, int, const char *, const char *, const char *, const char *), void *pUserData)
SQLITE_API SQLITE_DEPRECATED void * sqlite3_trace (sqlite3 *, void(*xTrace)(void *, const char *), void *)
SQLITE_API SQLITE_DEPRECATED void * sqlite3_profile (sqlite3 *, void(*xProfile)(void *, const char *, sqlite3_uint64), void *)
SQLITE_API int sqlite3_trace_v2 (sqlite3 *, unsigned uMask, int(*xCallback)(unsigned, void *, void *, void *), void *pCtx)
SQLITE_API void sqlite3_progress_handler (sqlite3 *, int, int(*)(void *), void *)
SQLITE_API int sqlite3_open (const char *filename, sqlite3 **ppDb)
SQLITE_API int sqlite3_open16 (const void *filename, sqlite3 **ppDb)
SQLITE_API int sqlite3_open_v2 (const char *filename, sqlite3 **ppDb, int flags, const char *zVfs)
SQLITE_API const char * sqlite3_uri_parameter (sqlite3_filename z, const char *zParam)
SQLITE_API int sqlite3_uri_boolean (sqlite3_filename z, const char *zParam, int bDefault)
SQLITE_API sqlite3_int64 sqlite3_uri_int64 (sqlite3_filename, const char *, sqlite3_int64)
SQLITE_API const char * sqlite3_uri_key (sqlite3_filename z, int N)
SQLITE_API const char * sqlite3_filename_database (sqlite3_filename)
SQLITE_API const char * sqlite3_filename_journal (sqlite3_filename)
SQLITE_API const char * sqlite3_filename_wal (sqlite3_filename)
SQLITE_API sqlite3_file * sqlite3_database_file_object (const char *)
SQLITE_API sqlite3_filename sqlite3_create_filename (const char *zDatabase, const char *zJournal, const char *zWal, int nParam, const char **azParam)
SQLITE_API void sqlite3_free_filename (sqlite3_filename)
SQLITE_API int sqlite3_errcode (sqlite3 *db)
SQLITE_API int sqlite3_extended_errcode (sqlite3 *db)
SQLITE_API const char * sqlite3_errmsg (sqlite3 *)
SQLITE_API const void * sqlite3_errmsg16 (sqlite3 *)
SQLITE_API const char * sqlite3_errstr (int)
SQLITE_API int sqlite3_error_offset (sqlite3 *db)
SQLITE_API int sqlite3_limit (sqlite3 *, int id, int newVal)
SQLITE_API int sqlite3_prepare (sqlite3 *db, const char *zSql, int nByte, sqlite3_stmt **ppStmt, const char **pzTail)
SQLITE_API int sqlite3_prepare_v2 (sqlite3 *db, const char *zSql, int nByte, sqlite3_stmt **ppStmt, const char **pzTail)
SQLITE_API int sqlite3_prepare_v3 (sqlite3 *db, const char *zSql, int nByte, unsigned int prepFlags, sqlite3_stmt **ppStmt, const char **pzTail)
SQLITE_API int sqlite3_prepare16 (sqlite3 *db, const void *zSql, int nByte, sqlite3_stmt **ppStmt, const void **pzTail)
SQLITE_API int sqlite3_prepare16_v2 (sqlite3 *db, const void *zSql, int nByte, sqlite3_stmt **ppStmt, const void **pzTail)
SQLITE_API int sqlite3_prepare16_v3 (sqlite3 *db, const void *zSql, int nByte, unsigned int prepFlags, sqlite3_stmt **ppStmt, const void **pzTail)
SQLITE_API const char * sqlite3_sql (sqlite3_stmt *pStmt)
SQLITE_API char * sqlite3_expanded_sql (sqlite3_stmt *pStmt)
SQLITE_API int sqlite3_stmt_readonly (sqlite3_stmt *pStmt)
SQLITE_API int sqlite3_stmt_isexplain (sqlite3_stmt *pStmt)
SQLITE_API int sqlite3_stmt_explain (sqlite3_stmt *pStmt, int eMode)
SQLITE_API int sqlite3_stmt_busy (sqlite3_stmt *)
SQLITE_API int sqlite3_bind_blob (sqlite3_stmt *, int, const void *, int n, void(*)(void *))
SQLITE_API int sqlite3_bind_blob64 (sqlite3_stmt *, int, const void *, sqlite3_uint64, void(*)(void *))
SQLITE_API int sqlite3_bind_double (sqlite3_stmt *, int, double)
SQLITE_API int sqlite3_bind_int (sqlite3_stmt *, int, int)
SQLITE_API int sqlite3_bind_int64 (sqlite3_stmt *, int, sqlite3_int64)
SQLITE_API int sqlite3_bind_null (sqlite3_stmt *, int)
SQLITE_API int sqlite3_bind_text (sqlite3_stmt *, int, const char *, int, void(*)(void *))
SQLITE_API int sqlite3_bind_text16 (sqlite3_stmt *, int, const void *, int, void(*)(void *))
SQLITE_API int sqlite3_bind_text64 (sqlite3_stmt *, int, const char *, sqlite3_uint64, void(*)(void *), unsigned char encoding)
SQLITE_API int sqlite3_bind_value (sqlite3_stmt *, int, const sqlite3_value *)
SQLITE_API int sqlite3_bind_pointer (sqlite3_stmt *, int, void *, const char *, void(*)(void *))
SQLITE_API int sqlite3_bind_zeroblob (sqlite3_stmt *, int, int n)
SQLITE_API int sqlite3_bind_zeroblob64 (sqlite3_stmt *, int, sqlite3_uint64)
SQLITE_API int sqlite3_bind_parameter_count (sqlite3_stmt *)
SQLITE_API const char * sqlite3_bind_parameter_name (sqlite3_stmt *, int)
SQLITE_API int sqlite3_bind_parameter_index (sqlite3_stmt *, const char *zName)
SQLITE_API int sqlite3_clear_bindings (sqlite3_stmt *)
SQLITE_API int sqlite3_column_count (sqlite3_stmt *pStmt)
SQLITE_API const char * sqlite3_column_name (sqlite3_stmt *, int N)
SQLITE_API const void * sqlite3_column_name16 (sqlite3_stmt *, int N)
SQLITE_API const char * sqlite3_column_database_name (sqlite3_stmt *, int)
SQLITE_API const void * sqlite3_column_database_name16 (sqlite3_stmt *, int)
SQLITE_API const char * sqlite3_column_table_name (sqlite3_stmt *, int)
SQLITE_API const void * sqlite3_column_table_name16 (sqlite3_stmt *, int)
SQLITE_API const char * sqlite3_column_origin_name (sqlite3_stmt *, int)
SQLITE_API const void * sqlite3_column_origin_name16 (sqlite3_stmt *, int)
SQLITE_API const char * sqlite3_column_decltype (sqlite3_stmt *, int)
SQLITE_API const void * sqlite3_column_decltype16 (sqlite3_stmt *, int)
SQLITE_API int sqlite3_step (sqlite3_stmt *)
SQLITE_API int sqlite3_data_count (sqlite3_stmt *pStmt)
SQLITE_API const void * sqlite3_column_blob (sqlite3_stmt *, int iCol)
SQLITE_API double sqlite3_column_double (sqlite3_stmt *, int iCol)
SQLITE_API int sqlite3_column_int (sqlite3_stmt *, int iCol)
SQLITE_API sqlite3_int64 sqlite3_column_int64 (sqlite3_stmt *, int iCol)
SQLITE_API const unsigned char * sqlite3_column_text (sqlite3_stmt *, int iCol)
SQLITE_API const void * sqlite3_column_text16 (sqlite3_stmt *, int iCol)
SQLITE_API sqlite3_value * sqlite3_column_value (sqlite3_stmt *, int iCol)
SQLITE_API int sqlite3_column_bytes (sqlite3_stmt *, int iCol)
SQLITE_API int sqlite3_column_bytes16 (sqlite3_stmt *, int iCol)
SQLITE_API int sqlite3_column_type (sqlite3_stmt *, int iCol)
SQLITE_API int sqlite3_finalize (sqlite3_stmt *pStmt)
SQLITE_API int sqlite3_reset (sqlite3_stmt *pStmt)
SQLITE_API int sqlite3_create_function (sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xFunc)(sqlite3_context *, int, sqlite3_value **), void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *))
SQLITE_API int sqlite3_create_function16 (sqlite3 *db, const void *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xFunc)(sqlite3_context *, int, sqlite3_value **), void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *))
SQLITE_API int sqlite3_create_function_v2 (sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xFunc)(sqlite3_context *, int, sqlite3_value **), void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *), void(*xDestroy)(void *))
SQLITE_API int sqlite3_create_window_function (sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *), void(*xValue)(sqlite3_context *), void(*xInverse)(sqlite3_context *, int, sqlite3_value **), void(*xDestroy)(void *))
SQLITE_API SQLITE_DEPRECATED int sqlite3_aggregate_count (sqlite3_context *)
SQLITE_API SQLITE_DEPRECATED int sqlite3_expired (sqlite3_stmt *)
SQLITE_API SQLITE_DEPRECATED int sqlite3_transfer_bindings (sqlite3_stmt *, sqlite3_stmt *)
SQLITE_API SQLITE_DEPRECATED int sqlite3_global_recover (void)
SQLITE_API SQLITE_DEPRECATED void sqlite3_thread_cleanup (void)
SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm (void(*)(void *, sqlite3_int64, int), void *, sqlite3_int64)
SQLITE_API const void * sqlite3_value_blob (sqlite3_value *)
SQLITE_API double sqlite3_value_double (sqlite3_value *)
SQLITE_API int sqlite3_value_int (sqlite3_value *)
SQLITE_API sqlite3_int64 sqlite3_value_int64 (sqlite3_value *)
SQLITE_API void * sqlite3_value_pointer (sqlite3_value *, const char *)
SQLITE_API const unsigned char * sqlite3_value_text (sqlite3_value *)
SQLITE_API const void * sqlite3_value_text16 (sqlite3_value *)
SQLITE_API const void * sqlite3_value_text16le (sqlite3_value *)
SQLITE_API const void * sqlite3_value_text16be (sqlite3_value *)
SQLITE_API int sqlite3_value_bytes (sqlite3_value *)
SQLITE_API int sqlite3_value_bytes16 (sqlite3_value *)
SQLITE_API int sqlite3_value_type (sqlite3_value *)
SQLITE_API int sqlite3_value_numeric_type (sqlite3_value *)
SQLITE_API int sqlite3_value_nochange (sqlite3_value *)
SQLITE_API int sqlite3_value_frombind (sqlite3_value *)
SQLITE_API int sqlite3_value_encoding (sqlite3_value *)
SQLITE_API unsigned int sqlite3_value_subtype (sqlite3_value *)
SQLITE_API sqlite3_value * sqlite3_value_dup (const sqlite3_value *)
SQLITE_API void sqlite3_value_free (sqlite3_value *)
SQLITE_API void * sqlite3_aggregate_context (sqlite3_context *, int nBytes)
SQLITE_API void * sqlite3_user_data (sqlite3_context *)
SQLITE_API sqlite3 * sqlite3_context_db_handle (sqlite3_context *)
SQLITE_API void * sqlite3_get_auxdata (sqlite3_context *, int N)
SQLITE_API void sqlite3_set_auxdata (sqlite3_context *, int N, void *, void(*)(void *))
SQLITE_API void * sqlite3_get_clientdata (sqlite3 *, const char *)
SQLITE_API int sqlite3_set_clientdata (sqlite3 *, const char *, void *, void(*)(void *))
SQLITE_API void sqlite3_result_blob (sqlite3_context *, const void *, int, void(*)(void *))
SQLITE_API void sqlite3_result_blob64 (sqlite3_context *, const void *, sqlite3_uint64, void(*)(void *))
SQLITE_API void sqlite3_result_double (sqlite3_context *, double)
SQLITE_API void sqlite3_result_error (sqlite3_context *, const char *, int)
SQLITE_API void sqlite3_result_error16 (sqlite3_context *, const void *, int)
SQLITE_API void sqlite3_result_error_toobig (sqlite3_context *)
SQLITE_API void sqlite3_result_error_nomem (sqlite3_context *)
SQLITE_API void sqlite3_result_error_code (sqlite3_context *, int)
SQLITE_API void sqlite3_result_int (sqlite3_context *, int)
SQLITE_API void sqlite3_result_int64 (sqlite3_context *, sqlite3_int64)
SQLITE_API void sqlite3_result_null (sqlite3_context *)
SQLITE_API void sqlite3_result_text (sqlite3_context *, const char *, int, void(*)(void *))
SQLITE_API void sqlite3_result_text64 (sqlite3_context *, const char *, sqlite3_uint64, void(*)(void *), unsigned char encoding)
SQLITE_API void sqlite3_result_text16 (sqlite3_context *, const void *, int, void(*)(void *))
SQLITE_API void sqlite3_result_text16le (sqlite3_context *, const void *, int, void(*)(void *))
SQLITE_API void sqlite3_result_text16be (sqlite3_context *, const void *, int, void(*)(void *))
SQLITE_API void sqlite3_result_value (sqlite3_context *, sqlite3_value *)
SQLITE_API void sqlite3_result_pointer (sqlite3_context *, void *, const char *, void(*)(void *))
SQLITE_API void sqlite3_result_zeroblob (sqlite3_context *, int n)
SQLITE_API int sqlite3_result_zeroblob64 (sqlite3_context *, sqlite3_uint64 n)
SQLITE_API void sqlite3_result_subtype (sqlite3_context *, unsigned int)
SQLITE_API int sqlite3_create_collation (sqlite3 *, const char *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *))
SQLITE_API int sqlite3_create_collation_v2 (sqlite3 *, const char *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *), void(*xDestroy)(void *))
SQLITE_API int sqlite3_create_collation16 (sqlite3 *, const void *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *))
SQLITE_API int sqlite3_collation_needed (sqlite3 *, void *, void(*)(void *, sqlite3 *, int eTextRep, const char *))
SQLITE_API int sqlite3_collation_needed16 (sqlite3 *, void *, void(*)(void *, sqlite3 *, int eTextRep, const void *))
SQLITE_API int sqlite3_sleep (int)
SQLITE_API int sqlite3_win32_set_directory (unsigned long type, void *zValue)
SQLITE_API int sqlite3_win32_set_directory8 (unsigned long type, const char *zValue)
SQLITE_API int sqlite3_win32_set_directory16 (unsigned long type, const void *zValue)
SQLITE_API int sqlite3_get_autocommit (sqlite3 *)
SQLITE_API sqlite3 * sqlite3_db_handle (sqlite3_stmt *)
SQLITE_API const char * sqlite3_db_name (sqlite3 *db, int N)
SQLITE_API sqlite3_filename sqlite3_db_filename (sqlite3 *db, const char *zDbName)
SQLITE_API int sqlite3_db_readonly (sqlite3 *db, const char *zDbName)
SQLITE_API int sqlite3_txn_state (sqlite3 *, const char *zSchema)
SQLITE_API sqlite3_stmt * sqlite3_next_stmt (sqlite3 *pDb, sqlite3_stmt *pStmt)
SQLITE_API void * sqlite3_commit_hook (sqlite3 *, int(*)(void *), void *)
SQLITE_API void * sqlite3_rollback_hook (sqlite3 *, void(*)(void *), void *)
SQLITE_API int sqlite3_autovacuum_pages (sqlite3 *db, unsigned int(*)(void *, const char *, unsigned int, unsigned int, unsigned int), void *, void(*)(void *))
SQLITE_API void * sqlite3_update_hook (sqlite3 *, void(*)(void *, int, char const *, char const *, sqlite3_int64), void *)
SQLITE_API int sqlite3_enable_shared_cache (int)
SQLITE_API int sqlite3_release_memory (int)
SQLITE_API int sqlite3_db_release_memory (sqlite3 *)
SQLITE_API sqlite3_int64 sqlite3_soft_heap_limit64 (sqlite3_int64 N)
SQLITE_API sqlite3_int64 sqlite3_hard_heap_limit64 (sqlite3_int64 N)
SQLITE_API SQLITE_DEPRECATED void sqlite3_soft_heap_limit (int N)
SQLITE_API int sqlite3_table_column_metadata (sqlite3 *db, const char *zDbName, const char *zTableName, const char *zColumnName, char const **pzDataType, char const **pzCollSeq, int *pNotNull, int *pPrimaryKey, int *pAutoinc)
SQLITE_API int sqlite3_load_extension (sqlite3 *db, const char *zFile, const char *zProc, char **pzErrMsg)
SQLITE_API int sqlite3_enable_load_extension (sqlite3 *db, int onoff)
SQLITE_API int sqlite3_auto_extension (void(*xEntryPoint)(void))
SQLITE_API int sqlite3_cancel_auto_extension (void(*xEntryPoint)(void))
SQLITE_API void sqlite3_reset_auto_extension (void)
SQLITE_API int sqlite3_create_module (sqlite3 *db, const char *zName, const sqlite3_module *p, void *pClientData)
SQLITE_API int sqlite3_create_module_v2 (sqlite3 *db, const char *zName, const sqlite3_module *p, void *pClientData, void(*xDestroy)(void *))
SQLITE_API int sqlite3_drop_modules (sqlite3 *db, const char **azKeep)
SQLITE_API int sqlite3_declare_vtab (sqlite3 *, const char *zSQL)
SQLITE_API int sqlite3_overload_function (sqlite3 *, const char *zFuncName, int nArg)
SQLITE_API int sqlite3_blob_open (sqlite3 *, const char *zDb, const char *zTable, const char *zColumn, sqlite3_int64 iRow, int flags, sqlite3_blob **ppBlob)
SQLITE_API int sqlite3_blob_reopen (sqlite3_blob *, sqlite3_int64)
SQLITE_API int sqlite3_blob_close (sqlite3_blob *)
SQLITE_API int sqlite3_blob_bytes (sqlite3_blob *)
SQLITE_API int sqlite3_blob_read (sqlite3_blob *, void *Z, int N, int iOffset)
SQLITE_API int sqlite3_blob_write (sqlite3_blob *, const void *z, int n, int iOffset)
SQLITE_API sqlite3_vfs * sqlite3_vfs_find (const char *zVfsName)
SQLITE_API int sqlite3_vfs_register (sqlite3_vfs *, int makeDflt)
SQLITE_API int sqlite3_vfs_unregister (sqlite3_vfs *)
SQLITE_API sqlite3_mutex * sqlite3_mutex_alloc (int)
SQLITE_API void sqlite3_mutex_free (sqlite3_mutex *)
SQLITE_API void sqlite3_mutex_enter (sqlite3_mutex *)
SQLITE_API int sqlite3_mutex_try (sqlite3_mutex *)
SQLITE_API void sqlite3_mutex_leave (sqlite3_mutex *)
SQLITE_API int sqlite3_mutex_held (sqlite3_mutex *)
SQLITE_API int sqlite3_mutex_notheld (sqlite3_mutex *)
SQLITE_API sqlite3_mutex * sqlite3_db_mutex (sqlite3 *)
SQLITE_API int sqlite3_file_control (sqlite3 *, const char *zDbName, int op, void *)
SQLITE_API int sqlite3_test_control (int op,...)
SQLITE_API int sqlite3_keyword_count (void)
SQLITE_API int sqlite3_keyword_name (int, const char **, int *)
SQLITE_API int sqlite3_keyword_check (const char *, int)
SQLITE_API sqlite3_str * sqlite3_str_new (sqlite3 *)
SQLITE_API char * sqlite3_str_finish (sqlite3_str *)
SQLITE_API void sqlite3_str_appendf (sqlite3_str *, const char *zFormat,...)
SQLITE_API void sqlite3_str_vappendf (sqlite3_str *, const char *zFormat, va_list)
SQLITE_API void sqlite3_str_append (sqlite3_str *, const char *zIn, int N)
SQLITE_API void sqlite3_str_appendall (sqlite3_str *, const char *zIn)
SQLITE_API void sqlite3_str_appendchar (sqlite3_str *, int N, char C)
SQLITE_API void sqlite3_str_reset (sqlite3_str *)
SQLITE_API int sqlite3_str_errcode (sqlite3_str *)
SQLITE_API int sqlite3_str_length (sqlite3_str *)
SQLITE_API char * sqlite3_str_value (sqlite3_str *)
SQLITE_API int sqlite3_status (int op, int *pCurrent, int *pHighwater, int resetFlag)
SQLITE_API int sqlite3_status64 (int op, sqlite3_int64 *pCurrent, sqlite3_int64 *pHighwater, int resetFlag)
SQLITE_API int sqlite3_db_status (sqlite3 *, int op, int *pCur, int *pHiwtr, int resetFlg)
SQLITE_API int sqlite3_stmt_status (sqlite3_stmt *, int op, int resetFlg)
SQLITE_API sqlite3_backup * sqlite3_backup_init (sqlite3 *pDest, const char *zDestName, sqlite3 *pSource, const char *zSourceName)
SQLITE_API int sqlite3_backup_step (sqlite3_backup *p, int nPage)
SQLITE_API int sqlite3_backup_finish (sqlite3_backup *p)
SQLITE_API int sqlite3_backup_remaining (sqlite3_backup *p)
SQLITE_API int sqlite3_backup_pagecount (sqlite3_backup *p)
SQLITE_API int sqlite3_unlock_notify (sqlite3 *pBlocked, void(*xNotify)(void **apArg, int nArg), void *pNotifyArg)
SQLITE_API int sqlite3_stricmp (const char *, const char *)
SQLITE_API int sqlite3_strnicmp (const char *, const char *, int)
SQLITE_API int sqlite3_strglob (const char *zGlob, const char *zStr)
SQLITE_API int sqlite3_strlike (const char *zGlob, const char *zStr, unsigned int cEsc)
SQLITE_API void sqlite3_log (int iErrCode, const char *zFormat,...)
SQLITE_API void * sqlite3_wal_hook (sqlite3 *, int(*)(void *, sqlite3 *, const char *, int), void *)
SQLITE_API int sqlite3_wal_autocheckpoint (sqlite3 *db, int N)
SQLITE_API int sqlite3_wal_checkpoint (sqlite3 *db, const char *zDb)
SQLITE_API int sqlite3_wal_checkpoint_v2 (sqlite3 *db, const char *zDb, int eMode, int *pnLog, int *pnCkpt)
SQLITE_API int sqlite3_vtab_config (sqlite3 *, int op,...)
SQLITE_API int sqlite3_vtab_on_conflict (sqlite3 *)
SQLITE_API int sqlite3_vtab_nochange (sqlite3_context *)
SQLITE_API const char * sqlite3_vtab_collation (sqlite3_index_info *, int)
SQLITE_API int sqlite3_vtab_distinct (sqlite3_index_info *)
SQLITE_API int sqlite3_vtab_in (sqlite3_index_info *, int iCons, int bHandle)
SQLITE_API int sqlite3_vtab_in_first (sqlite3_value *pVal, sqlite3_value **ppOut)
SQLITE_API int sqlite3_vtab_in_next (sqlite3_value *pVal, sqlite3_value **ppOut)
SQLITE_API int sqlite3_vtab_rhs_value (sqlite3_index_info *, int, sqlite3_value **ppVal)
SQLITE_API int sqlite3_stmt_scanstatus (sqlite3_stmt *pStmt, int idx, int iScanStatusOp, void *pOut)
SQLITE_API int sqlite3_stmt_scanstatus_v2 (sqlite3_stmt *pStmt, int idx, int iScanStatusOp, int flags, void *pOut)
SQLITE_API void sqlite3_stmt_scanstatus_reset (sqlite3_stmt *)
SQLITE_API int sqlite3_db_cacheflush (sqlite3 *)
SQLITE_API int sqlite3_system_errno (sqlite3 *)
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_get (sqlite3 *db, const char *zSchema, sqlite3_snapshot **ppSnapshot)
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_open (sqlite3 *db, const char *zSchema, sqlite3_snapshot *pSnapshot)
SQLITE_API SQLITE_EXPERIMENTAL void sqlite3_snapshot_free (sqlite3_snapshot *)
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_cmp (sqlite3_snapshot *p1, sqlite3_snapshot *p2)
SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover (sqlite3 *db, const char *zDb)
SQLITE_API unsigned char * sqlite3_serialize (sqlite3 *db, const char *zSchema, sqlite3_int64 *piSize, unsigned int mFlags)
SQLITE_API int sqlite3_deserialize (sqlite3 *db, const char *zSchema, unsigned char *pData, sqlite3_int64 szDb, sqlite3_int64 szBuf, unsigned mFlags)
SQLITE_API int sqlite3_rtree_geometry_callback (sqlite3 *db, const char *zGeom, int(*xGeom)(sqlite3_rtree_geometry *, int, sqlite3_rtree_dbl *, int *), void *pContext)
SQLITE_API int sqlite3_rtree_query_callback (sqlite3 *db, const char *zQueryFunc, int(*xQueryFunc)(sqlite3_rtree_query_info *), void *pContext, void(*xDestructor)(void *))

Variables

SQLITE_API SQLITE_EXTERN const char sqlite3_version []
SQLITE_API SQLITE_EXTERN char * sqlite3_temp_directory
SQLITE_API SQLITE_EXTERN char * sqlite3_data_directory
file unishox1.c
#include <sys/time.h>#include <time.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#include <stdint.h>#include "unishox1.h"

Defines

UNISHOX_VERSION
USE_64K_LOOKUP
NICE_LEN
TERM_CODE
TERM_CODE_LEN
DICT_CODE
DICT_CODE_LEN
DICT_OTHER_CODE
DICT_OTHER_CODE_LEN
RPT_CODE
RPT_CODE_LEN
BACK2_STATE1_CODE
BACK2_STATE1_CODE_LEN
BACK_FROM_UNI_CODE
BACK_FROM_UNI_CODE_LEN
CRLF_CODE
CRLF_CODE_LEN
LF_CODE
LF_CODE_LEN
TAB_CODE
TAB_CODE_LEN
UNI_CODE
UNI_CODE_LEN
UNI_STATE_SPL_CODE
UNI_STATE_SPL_CODE_LEN
UNI_STATE_DICT_CODE
UNI_STATE_DICT_CODE_LEN
CONT_UNI_CODE
CONT_UNI_CODE_LEN
ALL_UPPER_CODE
ALL_UPPER_CODE_LEN
SW2_STATE2_CODE
SW2_STATE2_CODE_LEN
ST2_SPC_CODE
ST2_SPC_CODE_LEN
BIN_CODE
BIN_CODE_LEN

Typedefs

typedef unsigned char byte

Enums

enum [anonymous]

Values:

enumerator SHX_SET1
enumerator SHX_SET1A
enumerator SHX_SET1B
enumerator SHX_SET2
enumerator SHX_SET3
enumerator SHX_SET4
enumerator SHX_SET4A
enum [anonymous]

Values:

enumerator SHX_STATE_1
enumerator SHX_STATE_2
enumerator SHX_STATE_UNI

Functions

void init_coder()
int append_bits(char *out, int ol, unsigned int code, int clen, byte state)
int encodeCount(char *out, int ol, int count)
int encodeUnicode(char *out, int ol, int32_t code, int32_t prev_code)
int readUTF8(const char *in, int len, int l, int *utf8len)
int matchOccurance(const char *in, int len, int l, char *out, int *ol, byte *state, byte *is_all_upper)
int matchLine(const char *in, int len, int l, char *out, int *ol, struct us_lnk_lst *prev_lines, byte *state, byte *is_all_upper)
int unishox1_compress(const char *in, int len, char *out, struct us_lnk_lst *prev_lines)
int getBitVal(const char *in, int bit_no, int count)
int getCodeIdx(char *code_type, const char *in, int len, int *bit_no_p)
int32_t getNumFromBits(const char *in, int bit_no, int count)
int readCount(const char *in, int *bit_no_p, int len)
int32_t readUnicode(const char *in, int *bit_no_p, int len)
void writeUTF8(char *out, int *ol, int uni)
int decodeRepeat(const char *in, int len, char *out, int ol, int *bit_no, struct us_lnk_lst *prev_lines)
int unishox1_decompress(const char *in, int len, char *out, struct us_lnk_lst *prev_lines)
int is_empty(const char *s)
int encode_unsigned_varint(uint8_t *buffer, uint64_t value)
uint64_t decode_unsigned_varint(const uint8_t *data, int *decoded_bytes)
void print_string_as_hex(char *in, int len)
void print_compressed(char *in, int len)
uint32_t getTimeVal()
double timedifference(uint32_t t0, uint32_t t1)
int main(int argv, char *args[])

Variables

char us_vcodes[] = {0, 2, 3, 4, 10, 11, 12, 13, 14, 30, 31}
char us_vcode_lens[] = {2, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5}
char us_sets[][11] = {{0, ' ', 'e', 0, 't', 'a', 'o', 'i', 'n', 's', 'r'}, {0, 'l', 'c', 'd', 'h', 'u', 'p', 'm', 'b', 'g', 'w'}, {'f', 'y', 'v', 'k', 'q', 'j', 'x', 'z', 0, 0, 0}, {0, '9', '0', '1', '2', '3', '4', '5', '6', '7', '8'}, {'.', ',', '-', '/', '=', '+', ' ', '(', ')', '$', '%'}, {'&', ';', ':', '<', '>', '*', '"', '{', '}', '[', ']'}, {'@', '?', '\'', '^', '#', '_', '!', '\\', '|', '~', '`'}}
unsigned int c_95[95]
unsigned char l_95[95]
const int UTF8_MASK[] = {0xE0, 0xF0, 0xF8}
const int UTF8_PREFIX[] = {0xC0, 0xE0, 0xF0}
byte to_match_repeats = 1
byte is_inited = 0
unsigned int us_mask[] = {0x8000, 0xC000, 0xE000, 0xF000, 0xF800, 0xFC00, 0xFE00, 0xFF00}
const byte uni_bit_len[5] = {6, 12, 14, 16, 21}
const int32_t uni_adder[5] = {0, 64, 4160, 20544, 86080}
char us_vcode[32] = {2 + (0 << 3), 3 + (3 << 3), 3 + (1 << 3), 4 + (6 << 3), 0, 4 + (4 << 3), 3 + (2 << 3), 4 + (8 << 3), 0, 0, 0, 4 + (7 << 3), 0, 4 + (5 << 3), 0, 5 + (9 << 3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5 + (10 << 3)}
char us_hcode[32] = {1 + (1 << 3), 2 + (0 << 3), 0, 3 + (2 << 3), 0, 0, 0, 5 + (3 << 3), 0, 0, 0, 0, 0, 0, 0, 5 + (5 << 3), 0, 0, 0, 0, 0, 0, 0, 5 + (4 << 3), 0, 0, 0, 0, 0, 0, 0, 5 + (6 << 3)}
file unishox1.h

Functions

int unishox1_compress(const char *in, int len, char *out, struct us_lnk_lst *prev_lines)
int unishox1_decompress(const char *in, int len, char *out, struct us_lnk_lst *prev_lines)
file CONTRIBUTING.md
file ccondition_variable.cpp
#include "condition_variable.hpp"#include "thread.hpp"
file cevent_groups.cpp
#include "event_groups.hpp"
file cmem_pool.cpp
#include <stdlib.h>#include "mem_pool.hpp"
file cmutex.cpp
#include "mutex.hpp"
file condition_variable.hpp
#include <list>#include "mutex.hpp"
file cqueue.cpp
#include "queue.hpp"
file cread_write_lock.cpp
#include "read_write_lock.hpp"
file critical.hpp
#include "FreeRTOS.h"#include "task.h"
file csemaphore.cpp
#include "semaphore.hpp"
file ctasklet.cpp
#include "tasklet.hpp"
file cthread.cpp
#include <cstring>#include "thread.hpp"
file ctickhook.cpp
#include "tickhook.hpp"
file ctimer.cpp
#include "timer.hpp"
file cworkqueue.cpp
#include "workqueue.hpp"
file event_groups.hpp
#include <exception>#include <string>#include <cstdio>#include "FreeRTOS.h"#include "event_groups.h"
file mem_pool.hpp
#include <exception>#include <string>#include <cstdio>#include <list>#include "FreeRTOS.h"#include "mutex.hpp"
file mutex.hpp
#include <exception>#include <string>#include <cstdio>#include "FreeRTOS.h"#include "semphr.h"
file queue.hpp
#include <exception>#include <cstdio>#include <string>#include "FreeRTOS.h"#include "queue.h"
file read_write_lock.hpp
#include <exception>#include <string>#include <cstdio>#include "FreeRTOS.h"#include "semphr.h"
file semaphore.hpp
#include <exception>#include <string>#include <cstdio>#include "FreeRTOS.h"#include "semphr.h"
file tasklet.hpp
#include <exception>#include <string>#include <cstdio>#include "FreeRTOS.h"#include "timers.h"#include "semphr.h"
file thread.hpp
#include <string>#include "FreeRTOS.h"#include "task.h"#include "mutex.hpp"#include "semaphore.hpp"#include "condition_variable.hpp"
file tickhook.hpp
#include "FreeRTOS.h"#include "task.h"#include <list>
file ticks.hpp
#include "FreeRTOS.h"#include "task.h"
file timer.hpp
#include <exception>#include <string>#include <cstdio>#include "FreeRTOS.h"#include "timers.h"
file version.hpp

Defines

CPP_WRAPPERS_VERSION_MAJOR
CPP_WRAPPERS_VERSION_MINOR
CPP_WRAPPERS_VERSION_RELEASE
CPP_WRAPPERS_VERSION_STRING
file workqueue.hpp
#include "thread.hpp"#include "queue.hpp"#include "semaphore.hpp"

Defines

DEFAULT_MAX_WORK_ITEMS
DEFAULT_WORK_QUEUE_STACK_SIZE
DEFAULT_WORK_QUEUE_PRIORITY
file common.h
#include "Arduino.h"#include "stimawifi_config.h"#include "typedef.h"#include <frtosLog.h>#include "thread.hpp"#include "ticks.hpp"#include "queue.hpp"#include <DNSServer.h>#include <ArduinoJson.h>#include <Wire.h>#include <U8g2lib.h>#include "time.h"#include <WiFi.h>#include <ESPmDNS.h>#include <WebServer.h>#include <HTTPClient.h>#include <LittleFS.h>#include "esp_netif.h"#include "esp_sntp.h"#include <TimeAlarms.h>#include <WiFiManager.h>#include <LOLIN_I2C_BUTTON.h>#include <HTTPUpdate.h>#include <Adafruit_NeoPixel.h>#include <sqlite3.h>#include "udp_thread.h"#include "gps_thread.h"#include "measure_thread.h"#include "publish_thread.h"#include "db_thread.h"#include "critical.hpp"#include "semaphore.hpp"#include "SD.h"#include <StreamUtils.h>#include <DS1307RTC.h>#include <esp_task_wdt.h>
file db_thread.cpp
#include "common.h"

Functions

void clearSD()
static int db_exec_callback(void *data, int argc, char **argv, char **azColName)
static int db_obsolete_callback(void *result, int argc, char **argv, char **azColName)
file db_thread.h
file gps_thread.cpp
#include "common.h"

Defines

GPS_SERIAL_SPEED
MESSAGELEN

Functions

HardwareSerial Serial2 (0)

Variables

OZGPS gps_gps
MGPS gps_mgps
file gps_thread.h
#include "ozgps.h"#include <cmath>
file measure_thread.cpp
#include "common.h"#include "measure_thread.h"

Variables

unsigned short int displaypos
file measure_thread.h
#include "SensorManager.h"

Functions

void enqueueMqttMessage(const char *values, const char *timerange, const char *level, measure_data_t &data)
void doMeasure(measure_data_t &data)
void web_values(const char *values)
file publish_thread.cpp
#include "common.h"
file publish_thread.h
#include <Countdown.h>#include <WifiIPStack.h>#include <MQTTClient.h>

Functions

bool publish_maint(MQTT::Client<IPStack, Countdown, MQTT_PACKET_SIZE, 1> &mqttclient, publish_data_t &data)
bool publish_constantdata(MQTT::Client<IPStack, Countdown, MQTT_PACKET_SIZE, 1> &mqttclient, publish_data_t &data)
file stimawifi.h
#include "common.h"

Functions

WebServer webserver(STIMAHTTP_PORT)
U8G2_SSD1306_64X48_ER_F_HW_I2C u8g2(U8G2_R0)
Queue dbQueue (DB_QUEUE_LEN, sizeof(mqttMessage_t))
Queue mqttQueue (MQTT_QUEUE_LEN, sizeof(mqttMessage_t))
BinaryQueue recoveryQueue (sizeof(rpcRecovery_t))
BinarySemaphore recoverySemaphore (false)
String Json()
String Data()
String FullPage()
void writeconfig()
void handle_FullPage()
void handle_Data()
void handle_Json()
void handle_NotFound()
void saveConfigCallback()
String rmap_get_remote_config()
void firmware_upgrade()
String readconfig_rmap()
void writeconfig_rmap(const String payload)
int rmap_config(const String payload)
void readconfig()
void web_values(const char *values)
void measureAndPublish()
void reboot()
void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

const char * update_url = "/firmware/update/" FIRMWARE_TYPE "/"
const uint16_t update_port = 80
WiFiManager wifiManager
WiFiClient httpClient
WiFiClient networkClient
MutexStandard loggingmutex
MutexStandard i2cmutex
MutexStandard geomutex
bool shouldSaveConfig = false
bool pmspresent = false
bool oledpresent = false
I2C_BUTTON button
summarydata_t summarydata
georef_t georef = {"", "", 0, &geomutex}
stimawifiStatus_t stimawifiStatus
udp_data_t udp_data = {1, &frtosLog, &stimawifiStatus.udp, &georef}
gps_data_t gps_data = {1, &frtosLog, &stimawifiStatus.gps, &georef}
db_data_t db_data = {1, &frtosLog, &dbQueue, &mqttQueue, &recoverySemaphore, &recoveryQueue, &stimawifiStatus.db}
station_t station
measure_data_t measure_data = {1, &frtosLog, &mqttQueue, &dbQueue, &stimawifiStatus.measure, &station, &summarydata, &i2cmutex, &georef}
publish_data_t publish_data = {1, &frtosLog, &mqttQueue, &dbQueue, &recoveryQueue, &stimawifiStatus.publish, &station, &networkClient}
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(1, LED_PIN, NEO_GRB + NEO_KHZ800)
char status[15] = ""
file stimawifi.ino
#include "stimawifi.h"

Functions

void display_summary_data(char *status)
void printLocalTime()
void timeavailable(struct timeval *t)
String Json()
String Geo()
String Data()
String FullPage()
void handle_FullPage()
void handle_Data()
void handle_Json()
void handle_Geo()
void handle_NotFound()
void saveConfigCallback()
time_t ntp_set_time()
String rmap_get_remote_config()
void firmware_upgrade()
String readconfig_rmap()
void writeconfig_rmap(const String payload)
int rmap_config(const String payload)
void readconfig()
void writeconfig()
void displayStatus()
void dataRecovery()
void measureAndPublish()
void reboot()
void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

file typedef.h
#include <mqtt_config.h>#include <mutex.hpp>

Defines

CONSTANTDATA_BTABLE_LENGTH

Maximum lenght of btable code plus terminator that describe one constant data.

CONSTANTDATA_VALUE_LENGTH

Maximum lenght of value plus terminator for one constant data.

MAX_CONSTANTDATA_COUNT

Numero massimo di dati costanti di stazione (metadati).

Enums

enum status_e

Values:

enumerator unknown
enumerator ok
enumerator error
file udp_thread.cpp
#include "common.h"

Variables

WiFiUDP UDP
OZGPS udp_gps
MGPS udp_mgps
file udp_thread.h
#include <WiFiUdp.h>#include "ozgps.h"#include <cmath>
file test_hyt271.ino
#include <hyt2x1.h>

Defines

POWER_PIN

Copyright (C) 2017 Marco Baldinetti m.baldinetti@digiteco.it authors: Marco Baldinetti m.baldinetti@digiteco.it

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Functions

void test_read_ht(int8_t address)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

file hardware_config.h

Defines

I2C_BUS_CLOCK
I2C_MAX_DATA_LENGTH
file test_i2c_multimaster.ino
#include <Arduino.h>#include <debug_config.h>#include <i2c_config.h>#include <avr/sleep.h>#include <avr/power.h>#include <avr/wdt.h>#include <Wire.h>#include <i2c_utility.h>#include <ArduinoLog.h>

Defines

I2C_ADDRESS_1
I2C_ADDRESS_2
I2C_ADDRESS_3
I2C_ADDRESS_4
I2C_MY_ADDRESS
I2C_MAX_ERROR_COUNT
I2C_CHECK_DELAY_MS
I2C_REQUEST_MIN_DELAY_MS
I2C_REQUEST_MAX_DELAY_MS
I2C_SEND_DATA_MIN_DELAY_MS
I2C_SEND_DATA_MAX_DELAY_MS
PRINT_STATUS_DELAY_MS
WDT_TIMER

Enums

enum state_t

Values:

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

enumerator REBOOT

reboot the machine

enumerator INIT

init tasks and sensors

enumerator TASKS_EXECUTION

execute active tasks

enumerator END

go to ENTER_POWER_DOWN or TASKS_EXECUTION

Functions

uint8_t I2C_ClearBus_NEW()
bool check_i2c_bus()
void i2c_request_interrupt_handler()

I2C request interrupt handler.

Return

void.

void i2c_receive_interrupt_handler(int rx_data_length)

I2C receive interrupt handler.

Return

void.

Parameters
  • [in] rx_data_length: received data length in bytes.

void init_power_down(uint32_t *time_ms, uint32_t debouncing_ms)

Enter power down mode.

Return

void.

Parameters
  • time_ms: pointer to a variable to save the last instant you entered power down.

  • debouncing_ms: delay to power down.

void init_wdt(uint8_t wdt_timer)

Init watchdog.

Return

void.

Parameters
  • wdt_timer: a time value for init watchdog (WDTO_xxxx).

void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void init_system()

Init system.

Return

void.

void init_tasks()

Init tasks variable and state.

Return

void.

void init_sensors()

Create and setup sensors.

Return

void.

void reset_i2c_buffer(void *buffer, uint8_t *length)
void received_data()
void send_data(uint8_t write_data_length, uint8_t i2c_other_address)
void request_data(uint8_t length, uint8_t i2c_other_address)
void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void init_logging()

Init logging system.

Return

void.

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

state_t state
uint8_t ready_tasks_count
uint32_t awakened_event_occurred_time_ms
bool is_event_request_data
bool is_event_send_data
uint32_t start_print_status_delay_ms
uint32_t start_i2c_check_delay_ms
uint32_t i2c_request_delay_ms
uint32_t start_time_i2c_request_delay_ms
uint32_t i2c_send_delay_ms
uint32_t start_time_i2c_send_delay_ms
static uint8_t rx_buffer[I2C_MAX_DATA_LENGTH]
static uint8_t rx_buffer_length
uint8_t tx_buffer[I2C_MAX_DATA_LENGTH + 1]
uint8_t tx_buffer_length
uint8_t rq_buffer[I2C_MAX_DATA_LENGTH + 1]
uint8_t rq_buffer_length
uint16_t i2c_rx_error_count
uint16_t i2c_rx_success_count
uint16_t i2c_tx_error_count
uint16_t i2c_tx_success_count
uint16_t i2c_rq_error_count
uint16_t i2c_rq_success_count
file ToggleLED.ino
#include <arduinoJsonRPC.h>

Functions

JsonRPC rpc (false)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

int toggle(JsonObject params, JsonObject result)
void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

int led = 13
file HelloWorld.ino
#include <Wire.h>#include <hd44780.h>#include <hd44780ioClass/hd44780_I2Cexp.h>

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

hd44780_I2Cexp lcd
const int LCD_COLS = 20
const int LCD_ROWS = 4
file SDlog.ino
#include <ArduinoLog.h>#include <SPI.h>#include <SdFat.h>#include <StreamUtils.h>

Defines

USE_SDCARD

This example sketch shows most of the features of the ArduinoLog library with SD card

USE_SDCARD RAM: [= ] 10.4% (used 1700 bytes from 16384 bytes) Flash: [== ] 16.7% (used 21668 bytes from 130048 bytes)

serial only logger RAM: [= ] 6.1% (used 996 bytes from 16384 bytes) Flash: [= ] 12.7% (used 16500 bytes from 130048 bytes)

DISABLE_LOGGING RAM: [= ] 5.8% (used 958 bytes from 16384 bytes) Flash: [= ] 8.8% (used 11426 bytes from 130048 bytes)

SDCARD_CHIP_SELECT_PIN
SPI_SPEED
SDCARD_LOGGING_FILE_NAME
LOG_LEVEL

Functions

WriteLoggingStream loggingStream(logFile, Serial)
void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

SdFat SD

SD-Card structure.

File logFile

File for logging on SD-Card.

int intValue1
int intValue2
long longValue1
long longValue2
bool boolValue1
bool boolValue2
const char *charArray = "this is a string"
String stringValue1 = "this is a string"
float floatValue
double doubleValue
file test_mqtt.ino
#include <debug_config.h>#include <sim800Client.h>#include <Sim800IPStack.h>#include <Countdown.h>#include <MQTTClient.h>#include <ArduinoLog.h>

Defines

TIMEOUT
REPEATWAIT
ENABLE_SUBSCRIBE
ENABLE_QOS0
ENABLE_QOS1
ENABLE_QOS2
MQTTCLIENT_QOS2
MQTTCLIENT_QOS
SERIAL_TRACE_LEVEL
SIM800_ON_OFF_PIN
GSM_APN
GSM_USERNAME
GSM_PASSWORD
TOPIC
HOSTNAME
DATE_TIME_STRING_LENGTH

Functions

HardwareSerial Serial1(PB11, PB10)
void messageArrived(MQTT::MessageData &md)
IPStack ipstack(s800)
bool initmodem(void)
bool connect(void)
bool publish(void)
void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

unsigned int arrivedcount = 0
sim800Client s800
MQTT::Client<IPStack, Countdown, 120, 2> client = MQTT::Client<IPStack, Countdown, 120, 2>(ipstack, TIMEOUT)
file test_mqtt_subscribe.ino
#include <sim800Client.h>#include <Sim800IPStack.h>#include <Countdown.h>#include <MQTTClient.h>

Defines

TIMEOUT
MQTTCLIENT_QOS
SIM800_ON_OFF_PIN
GSM_APN
GSM_USERNAME
GSM_PASSWORD
TOPICCOM
TOPICRES
HOSTNAME

Functions

HardwareSerial Serial1(PB11, PB10)
IPStack ipstack(s800)
bool publish(const char *topic, const char *payload)
void messageArrived(MQTT::MessageData &md)
bool initmodem(void)
bool connect(void)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

sim800Client s800
MQTT::Client<IPStack, Countdown, 120, 1> client = MQTT::Client<IPStack, Countdown, 120, 1>(ipstack, TIMEOUT)
bool send_response = false
file test_ntp.ino
#include <debug_config.h>#include <sim800Client.h>#include <Sim800IPStack.h>#include <Countdown.h>#include <ArduinoLog.h>#include <ntp.h>

Defines

SIM800_ON_OFF_PIN
GSM_APN
GSM_USERNAME
GSM_PASSWORD
NTP_SERVER
DATE_TIME_STRING_LENGTH

Functions

HardwareSerial Serial1(PB11, PB10)
bool initmodem(void)
void getNtp()
void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

sim800Client s800
file test_rtc.ino
#include <ArduinoLog.h>#include <TimeLib.h>#include <pcf8563.h>

Defines

DATE_TIME_STRING_LENGTH

Functions

void resetrtc()
void initrtc()
bool getrtc(time_t &time)
bool setrtc(const time_t time)
void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

time_t current_time
file test_sdcard.ino
#include <SPI.h>#include "FS.h"#include "SD.h"

Defines

C3SCK
C3MISO
C3MOSI
C3SS

Functions

void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop(void)

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

File test_file
file Fat16Config.h

Configuration file

Defines

USE_ACMD41

Set USE_ACMD41 zero to initialize the card with CMD1. This will allowed limited use of MMC cards.

FAT16_DEBUG_SUPPORT

Set non-zero to allow access to Fat16 internals by cardInfo debug sketch

file mSPI.cpp
#include "mSPI.h"#include <inttypes.h>#include <avr/io.h>

Functions

void SPI_begin(void)
uint8_t SPI_transfer(uint8_t data)
file mSPI.h
#include <inttypes.h>#include <avr/io.h>

Defines

SPI_SPCR_CONFIG

Functions

void SPI_begin(void)
uint8_t SPI_transfer(uint8_t data)
file optiboot.ino
#include "SdCard.h"

Defines

BLOCK_SIZE
FAT16_ID_POS
MBR_FIRST_PART_POS
MBR_PART_LBA_POS
BLOCKS_PER_CLUSTER_POS
RESERVED_BLOCKS_COUNT_POS
ROOT_ENTRIES_COUNT_POS
BLOCKS_PER_FAT_POS
ROOT_ENTRY_SIZE
ROOT_ENTRY_FREE_TAG
ROOT_ENTRY_FILENAME_SIZE
ROOT_ENTRY_CLUSTER_POS
ROOT_ENTRY_SIZE_POS
FAT_ENTRY_SIZE
FAT_FILENAME_SIZE
FAT_EOF_TAG
FAT_FREE_TAG
WAIT_FOR_LINE_START
READ_LINE_SIZE
READ_ADDRESS
READ_LINE_TYPE
READ_DATA

Functions

bool fatTagFound(void)
uint8_t *find_firmware_data(FatFileDesc *fat, uint8_t cardType)
void write_page(uint16_t address)
int sdcard_loader(void)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

uint8_t buff[1000]
file SdCard.cpp
#include "SdCard.h"#include <stdint.h>#include <avr/io.h>#include "Fat16Config.h"#include "mSPI.h"

Defines

RAMSTART
buff

Functions

uint8_t spiReceive(void)
bool waitNotBusy(void)
void chipSelectHigh(void)
void chipSelectLow(void)
uint8_t cardCommand(uint8_t cmd, uint32_t arg)
uint8_t cardAcmd(uint8_t cmd, uint32_t arg)
uint8_t SdCard_begin(void)
bool SdCard_readBlock(uint32_t blockNumber, uint8_t cardType)

Reads a 512 byte block from a storage device.

Return

The value one, true, is returned for success and the value zero, false, is returned for failure.

Parameters
  • [in] blockNumber: Logical block to be read.

  • [out] dst: Pointer to the location that will receive the data.

bool SdCard_writeBlock(uint32_t blockNumber, uint8_t cardType)

Writes a 512 byte block to a storage device.

Return

The value one, true, is returned for success and the value zero, false, is returned for failure.

Parameters
  • [in] blockNumber: Logical block to be written.

  • [in] src: Pointer to the location of the data to be written.

file SdCard.h
#include <stdint.h>#include <avr/io.h>#include "mSPI.h"

Defines

__STDC_LIMIT_MACROS
SD_SS_PORT
SD_SS_PIN
SD_SS_PORT_REG
SD_SS_DDR_REG
SPI_SCK_INIT_DIVISOR
SD_MAX_CMD0_TRIES
SD_MAX_TRANSFERTS
SD_MAX_COMMANDS
CMD0

GO_IDLE_STATE - init card in spi mode if CS low

CMD8

SEND_IF_COND - verify SD Memory Card interface operating condition.

CMD9

SEND_CSD - read the Card Specific Data (CSD register)

CMD10

SEND_CID - read the card identification information (CID register)

CMD12

STOP_TRANSMISSION - end multiple block read sequence

CMD13

SEND_STATUS - read the card status register

CMD17

READ_SINGLE_BLOCK - read a single data block from the card

CMD18

READ_MULTIPLE_BLOCK - read a multiple data blocks from the card

CMD24

WRITE_BLOCK - write a single data block to the card

CMD25

WRITE_MULTIPLE_BLOCK - write blocks of data until a STOP_TRANSMISSION

CMD32

ERASE_WR_BLK_START - sets the address of the first block to be erased

CMD33

ERASE_WR_BLK_END - sets the address of the last block of the continuous range to be erased

CMD38

ERASE - erase all previously selected blocks

CMD55

APP_CMD - escape for application specific command

CMD58

READ_OCR - read the OCR register of a card

CMD59

CRC_ON_OFF - enable or disable CRC checking

ACMD23

SET_WR_BLK_ERASE_COUNT - Set the number of write blocks to be pre-erased before writing

ACMD41

SD_SEND_OP_COMD - Sends host capacity support information and activates the card's initialization process

R1_READY_STATE

status for card in the ready state

R1_IDLE_STATE

status for card in the idle state

R1_ILLEGAL_COMMAND

status bit for illegal command

DATA_START_BLOCK

start data token for read or write single block

STOP_TRAN_TOKEN

stop token for write multiple blocks

WRITE_MULTIPLE_TOKEN

start data token for write multiple blocks

DATA_RES_MASK

mask for data response tokens after a write block operation

DATA_RES_ACCEPTED

write data accepted token

CARD_TYPE_SDV1

sd card type v1

CARD_TYPE_SDV2

sd card type v2

CARD_TYPE_SDHC

sd card type sdhc

Functions

uint8_t SdCard_begin()
bool SdCard_readBlock(uint32_t block, uint8_t cardType)

Reads a 512 byte block from a storage device.

Return

The value one, true, is returned for success and the value zero, false, is returned for failure.

Parameters
  • [in] blockNumber: Logical block to be read.

  • [out] dst: Pointer to the location that will receive the data.

bool SdCard_writeBlock(uint32_t block, uint8_t cardType)

Writes a 512 byte block to a storage device.

Return

The value one, true, is returned for success and the value zero, false, is returned for failure.

Parameters
  • [in] blockNumber: Logical block to be written.

  • [in] src: Pointer to the location of the data to be written.

file test_sensor_driver.ino
#include <i2c_config.h>#include <debug_config.h>#include <sensors_config.h>#include <SensorDriver.h>#include <ArduinoLog.h>

Defines

I2C_BUS_CLOCK
SENSORS_RETRY_COUNT_MAX
SENSORS_RETRY_DELAY_MS
DELAY_ACQ_MS
DELAY_TEST_MS

Enums

enum sensors_reading_state_t

Values:

enumerator SENSORS_READING_INIT

init task variables

enumerator SENSORS_READING_SETUP_CHECK

check sensor errors

enumerator SENSORS_READING_POWER_OFF

power off sensor

enumerator SENSORS_READING_POWER_ON

power on sensor

enumerator SENSORS_READING_SETUP

if required try a sensor setup

enumerator SENSORS_READING_PREPARE

prepare sensor

enumerator SENSORS_READING_IS_PREPARED

check if the sensor has been prepared

enumerator SENSORS_READING_GET

read and get values from sensor

enumerator SENSORS_READING_IS_GETTED

check if the sensor has been readed

enumerator SENSORS_READING_READ

intermediate state (future implementation...)

enumerator SENSORS_READING_NEXT

go to next sensor

enumerator SENSORS_READING_END

performs end operations and deactivate task

enumerator SENSORS_READING_WAIT_STATE

non-blocking waiting time

enumerator SENSORS_READING_INIT

init task variables

enumerator SENSORS_SETUP_CHECK

check errors and if required try a sensor setup

enumerator SENSORS_READING_PREPARE

prepare sensor

enumerator SENSORS_READING_IS_PREPARED

check if the sensor has been prepared

enumerator SENSORS_READING_GET

read and get values from sensor

enumerator SENSORS_READING_IS_GETTED

check if the sensor has been readed

enumerator SENSORS_READING_READ

intermediate state (future implementation...)

enumerator SENSORS_READING_NEXT

go to next sensor

enumerator SENSORS_READING_END

performs end operations and deactivate task

enumerator SENSORS_READING_WAIT_STATE

non-blocking waiting time

enumerator SENSORS_READING_INIT
enumerator SENSORS_READING_PREPARE
enumerator SENSORS_READING_IS_PREPARED
enumerator SENSORS_READING_GET
enumerator SENSORS_READING_IS_GETTED
enumerator SENSORS_READING_READ
enumerator SENSORS_READING_NEXT
enumerator SENSORS_READING_END
enumerator SENSORS_READING_WAIT_STATE

Functions

void init_sensors()

Create and setup sensors.

Return

void.

void sensors_reading_task(bool do_prepare = true, bool do_get = true, char *driver = NULL, char *type = NULL, uint8_t address = 0, uint8_t node = 0, uint8_t *sensor_index = 0, uint32_t *wait_time = NULL)

Sensors reading Task. Read data from sensors.

Return

void.

Parameters
  • do_prepare: if true, execute the prepare sensor's procedure

  • do_get: if true, execute the get sensor's procedure

  • *driver: sensor's driver

  • *type: sensor's type

  • *address: sensor's address

  • *node: sensor's node

  • *sensor_index: sensor's index

  • *wait_time: sensor's wait time

void reset_wire()
void init_wire()

Init wire (i2c) library and performs checks on the bus.

Return

void.

void check_i2c_bus()
void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

uint8_t sensors_count
SensorDriver *sensors[SENSORS_MAX]
bool is_first_run
bool is_test
bool is_event_sensors_reading
bool do_reset_first_run
int32_t values_readed_from_sensor[SENSORS_MAX][VALUES_TO_READ_FROM_SENSOR_COUNT]
sensors_reading_state_t sensors_reading_state
uint32_t acquiring_sensors_delay_ms
uint32_t testing_sensors_delay_ms
uint8_t i2c_error
file test_sensor_manager.ino
#include <SensorManager.h>

Defines

DELAY_ACQ_MS
DELAY_TEST_MS

Functions

void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

sensorManage sensorm[SENSORS_MAX]
uint32_t acquiring_sensor_delay_ms
uint32_t testing_sensor_delay_ms
uint8_t sensors_count
SensorDriver *sensors[SENSORS_MAX]
file basic.ino
#include <gsm_config.h>#include <sim800Client.h>#include <ArduinoLog.h>

Defines

LOG_LEVEL
SIM800_ON_OFF_PIN
SIM800_GSM_APN
SIM800_GSM_USERNAME
SIM800_GSM_PASSWORD

Enums

enum gsm_state_t

Values:

enumerator GSM_INIT

init task variables

enumerator GSM_SWITCH_ON

gsm power on

enumerator GSM_AUTOBAUD

gsm autobaud procedure

enumerator GSM_SETUP

gsm setup

enumerator GSM_START_CONNECTION

gsm open connection

enumerator GSM_CHECK_OPERATION

check operations (ntp or mqtt)

enumerator GSM_OPEN_UDP_SOCKET

open udp socket for ntp sync

enumerator GSM_SUSPEND

wait other tasks for complete its operations with gsm

enumerator GSM_STOP_CONNECTION

gsm close connection

enumerator GSM_WAIT_FOR_SWITCH_OFF

wait gsm for power off

enumerator GSM_SWITCH_OFF

gsm power off

enumerator GSM_END

performs end operations and deactivate task

enumerator GSM_WAIT_STATE

non-blocking waiting time

Functions

HardwareSerial Serial1(PB11, PB10)
void gsm_task()
void logPrefix(Print *_logOutput)
void logSuffix(Print *_logOutput)
void setup()

Arduino setup function. Init watchdog, hardware, debug, buffer and load configuration stored in EEPROM.

Arduino setup function. Init watchdog, hardware, debug and load configuration stored in EEPROM.

Return

void.

void loop()

Arduino loop function. First, initialize tasks and sensors, then execute the tasks and activates the power down if no task is running.

Return

void.

Variables

sim800Client s800
bool is_event_gsm
bool is_client_connected
bool is_client_udp_socket_open
bool is_event_client_executed
uint8_t ready_tasks_count
gsm_state_t gsm_state
group avr_boot

#include <avr/io.h>
#include <avr/boot.h>

The macros in this module provide a C language interface to the bootloader support functionality of certain AVR processors. These macros are designed to work with all sizes of flash memory.

Global interrupts are not automatically disabled for these macros. It is left up to the programmer to do this. See the code example below. Also see the processor datasheet for caveats on having global interrupts enabled during writing of the Flash.

Todo:

From email with Marek: On smaller devices (all except ATmega64/128), __SPM_REG is in the I/O space, accessible with the shorter "in" and "out" instructions - since the boot loader has a limited size, this could be an important optimization.

Note

Not all AVR processors provide bootloader support. See your processor datasheet to see if it provides bootloader support.

#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>

void boot_program_page (uint32_t page, uint8_t *buf)
{
    uint16_t i;
    uint8_t sreg;

    // Disable interrupts.

    sreg = SREG;
    cli();

    eeprom_busy_wait ();

    boot_page_erase (page);
    boot_spm_busy_wait ();      // Wait until the memory is erased.

    for (i=0; i<SPM_PAGESIZE; i+=2)
    {
        // Set up little-endian word.

        uint16_t w = *buf++;
        w += (*buf++) << 8;
    
        boot_page_fill (page + i, w);
    }

    boot_page_write (page);     // Store buffer in flash page.
    boot_spm_busy_wait();       // Wait until the memory is written.

    // Reenable RWW-section again. We need this if we want to jump back
    // to the application after bootloading.

    boot_rww_enable ();

    // Re-enable interrupts (if they were ever enabled).

    SREG = sreg;
}
API Usage Example

The following code shows typical usage of the boot API.

#include <avr/io.h>
#include <avr/boot.h>

The macros in this module provide a C language interface to the bootloader support functionality of certain AVR processors. These macros are designed to work with all sizes of flash memory.

Global interrupts are not automatically disabled for these macros. It is left up to the programmer to do this. See the code example below. Also see the processor datasheet for caveats on having global interrupts enabled during writing of the Flash.

Todo:

From email with Marek: On smaller devices (all except ATmega64/128), __SPM_REG is in the I/O space, accessible with the shorter "in" and "out" instructions - since the boot loader has a limited size, this could be an important optimization.

Note

Not all AVR processors provide bootloader support. See your processor datasheet to see if it provides bootloader support.

#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>

void boot_program_page (uint32_t page, uint8_t *buf)
{
    uint16_t i;
    uint8_t sreg;

    // Disable interrupts.

    sreg = SREG;
    cli();

    eeprom_busy_wait ();

    boot_page_erase (page);
    boot_spm_busy_wait ();      // Wait until the memory is erased.

    for (i=0; i<SPM_PAGESIZE; i+=2)
    {
        // Set up little-endian word.

        uint16_t w = *buf++;
        w += (*buf++) << 8;
    
        boot_page_fill (page + i, w);
    }

    boot_page_write (page);     // Store buffer in flash page.
    boot_spm_busy_wait();       // Wait until the memory is written.

    // Reenable RWW-section again. We need this if we want to jump back
    // to the application after bootloading.

    boot_rww_enable ();

    // Re-enable interrupts (if they were ever enabled).

    SREG = sreg;
}
API Usage Example

The following code shows typical usage of the boot API.

Defines

BOOTLOADER_SECTION

Used to declare a function or variable to be placed into a new section called .bootloader. This section and its contents can then be relocated to any address (such as the bootloader NRWW area) at link-time.

boot_spm_interrupt_enable()

Enable the SPM interrupt.

boot_spm_interrupt_disable()

Disable the SPM interrupt.

boot_is_spm_interrupt()

Check if the SPM interrupt is enabled.

boot_rww_busy()

Check if the RWW section is busy.

boot_spm_busy()

Check if the SPM instruction is busy.

boot_spm_busy_wait()

Wait while the SPM instruction is busy.

GET_LOW_FUSE_BITS

address to read the low fuse bits, using boot_lock_fuse_bits_get

GET_LOCK_BITS

address to read the lock bits, using boot_lock_fuse_bits_get

GET_EXTENDED_FUSE_BITS

address to read the extended fuse bits, using boot_lock_fuse_bits_get

GET_HIGH_FUSE_BITS

address to read the high fuse bits, using boot_lock_fuse_bits_get

boot_lock_fuse_bits_get(address)

Read the lock or fuse bits at address.

Parameter address can be any of GET_LOW_FUSE_BITS, GET_LOCK_BITS, GET_EXTENDED_FUSE_BITS, or GET_HIGH_FUSE_BITS.

Note

The lock and fuse bits returned are the physical values, i.e. a bit returned as 0 means the corresponding fuse or lock bit is programmed.

boot_signature_byte_get(addr)

Read the Signature Row byte at address. For some MCU types, this function can also retrieve the factory-stored oscillator calibration bytes.

Parameter address can be 0-0x1f as documented by the datasheet.

Note

The values are MCU type dependent.

boot_page_fill(address, data)

Fill the bootloader temporary page buffer for flash address with data word.

Note

The address is a byte address. The data is a word. The AVR writes data to the buffer a word at a time, but addresses the buffer per byte! So, increment your address by 2 between calls, and send 2 data bytes in a word format! The LSB of the data is written to the lower address; the MSB of the data is written to the higher address.

boot_page_erase(address)

Erase the flash page that contains address.

Note

address is a byte address in flash, not a word address.

boot_page_write(address)

Write the bootloader temporary page buffer to flash page that contains address.

Note

address is a byte address in flash, not a word address.

boot_rww_enable()

Enable the Read-While-Write memory section.

boot_lock_bits_set(lock_bits)

Set the bootloader lock bits.

For example, to disallow the SPM instruction from writing to the Boot Loader memory section of flash, you would use this macro as such:

Note

In this context, a 'set bit' will be written to a zero value. Note also that only BLBxx bits can be programmed by this command.

Parameters
  • lock_bits: A mask of which Boot Loader Lock Bits to set.

boot_lock_bits_set (_BV (BLB11));

Note

Like any lock bits, the Boot Loader Lock Bits, once set, cannot be cleared again except by a chip erase which will in turn also erase the boot loader itself.

boot_page_fill_safe(address, data)

Same as boot_page_fill() except it waits for eeprom and spm operations to complete before filling the page.

boot_page_erase_safe(address)

Same as boot_page_erase() except it waits for eeprom and spm operations to complete before erasing the page.

boot_page_write_safe(address)

Same as boot_page_write() except it waits for eeprom and spm operations to complete before writing the page.

boot_rww_enable_safe()

Same as boot_rww_enable() except waits for eeprom and spm operations to complete before enabling the RWW mameory.

boot_lock_bits_set_safe(lock_bits)

Same as boot_lock_bits_set() except waits for eeprom and spm operations to complete before setting the lock bits.

BOOTLOADER_SECTION

Used to declare a function or variable to be placed into a new section called .bootloader. This section and its contents can then be relocated to any address (such as the bootloader NRWW area) at link-time.

boot_spm_interrupt_enable()

Enable the SPM interrupt.

boot_spm_interrupt_disable()

Disable the SPM interrupt.

boot_is_spm_interrupt()

Check if the SPM interrupt is enabled.

boot_rww_busy()

Check if the RWW section is busy.

boot_spm_busy()

Check if the SPM instruction is busy.

boot_spm_busy_wait()

Wait while the SPM instruction is busy.

GET_LOW_FUSE_BITS

address to read the low fuse bits, using boot_lock_fuse_bits_get

GET_LOCK_BITS

address to read the lock bits, using boot_lock_fuse_bits_get

GET_EXTENDED_FUSE_BITS

address to read the extended fuse bits, using boot_lock_fuse_bits_get

GET_HIGH_FUSE_BITS

address to read the high fuse bits, using boot_lock_fuse_bits_get

boot_lock_fuse_bits_get(address)

Read the lock or fuse bits at address.

Parameter address can be any of GET_LOW_FUSE_BITS, GET_LOCK_BITS, GET_EXTENDED_FUSE_BITS, or GET_HIGH_FUSE_BITS.

Note

The lock and fuse bits returned are the physical values, i.e. a bit returned as 0 means the corresponding fuse or lock bit is programmed.

boot_signature_byte_get(addr)

Read the Signature Row byte at address. For some MCU types, this function can also retrieve the factory-stored oscillator calibration bytes.

Parameter address can be 0-0x1f as documented by the datasheet.

Note

The values are MCU type dependent.

boot_page_fill(address, data)

Fill the bootloader temporary page buffer for flash address with data word.

Note

The address is a byte address. The data is a word. The AVR writes data to the buffer a word at a time, but addresses the buffer per byte! So, increment your address by 2 between calls, and send 2 data bytes in a word format! The LSB of the data is written to the lower address; the MSB of the data is written to the higher address.

boot_page_erase(address)

Erase the flash page that contains address.

Note

address is a byte address in flash, not a word address.

boot_page_write(address)

Write the bootloader temporary page buffer to flash page that contains address.

Note

address is a byte address in flash, not a word address.

boot_rww_enable()

Enable the Read-While-Write memory section.

boot_lock_bits_set(lock_bits)

Set the bootloader lock bits.

For example, to disallow the SPM instruction from writing to the Boot Loader memory section of flash, you would use this macro as such:

Note

In this context, a 'set bit' will be written to a zero value. Note also that only BLBxx bits can be programmed by this command.

Parameters
  • lock_bits: A mask of which Boot Loader Lock Bits to set.

boot_lock_bits_set (_BV (BLB11));

Note

Like any lock bits, the Boot Loader Lock Bits, once set, cannot be cleared again except by a chip erase which will in turn also erase the boot loader itself.

boot_page_fill_safe(address, data)

Same as boot_page_fill() except it waits for eeprom and spm operations to complete before filling the page.

boot_page_erase_safe(address)

Same as boot_page_erase() except it waits for eeprom and spm operations to complete before erasing the page.

boot_page_write_safe(address)

Same as boot_page_write() except it waits for eeprom and spm operations to complete before writing the page.

boot_rww_enable_safe()

Same as boot_rww_enable() except waits for eeprom and spm operations to complete before enabling the RWW mameory.

boot_lock_bits_set_safe(lock_bits)

Same as boot_lock_bits_set() except waits for eeprom and spm operations to complete before setting the lock bits.

page md__home_pat1_git_rmap_platformio_stima_v3_digitecoboot_ihex_ihex_README

A small library for reading and writing the Intel HEX (or IHEX) format. The library is mainly intended for embedded systems and microcontrollers, such as Arduino, AVR, PIC, ARM, STM32, etc - hence the emphasis is on small size rather than features, generality, or error handling.

See the header file kk_ihex.h for documentation, or below for simple examples.

~ Kimmo Kulovesi, 2013-12-27

Writing

Basic usage for writing binary data as IHEX ASCII:

#include "kk_ihex_write.h"

struct ihex_state ihex;
ihex_init(&ihex);
ihex_write_at_address(&ihex, 0);
ihex_write_bytes(&ihex, my_data_bytes, my_data_size);
ihex_end_write(&ihex);
The function ihex_write_bytes may be called multiple times to pass any amount of data at a time.

The actual writing is done by a callback called ihex_flush_buffer, which must be implemented, e.g., as follows:

void ihex_flush_buffer(struct ihex_state *ihex, char *buffer, char *eptr) {
    *eptr = '\0';
    (void) fputs(buffer, stdout);
}
The length of the buffer can be obtained from eptr - buffer. The actual implementation may of course do with the IHEX data as it pleases, e.g., transmit it over a serial port.

For a complete example, see the included program bin2ihex.c.

Reading

Basic usage for reading ASCII IHEX into binary data:

#include "kk_ihex_read.h"

struct ihex_state ihex;
ihex_begin_read(&ihex);
ihex_read_bytes(&ihex, my_ascii_bytes, my_ascii_length);
ihex_end_read(&ihex);
The function ihex_read_bytes may be called multiple times to pass any amount of data at a time.

The reading functions call the function ihex_data_read, which must be implemented by the caller to store the binary data, e.g., as follows:

ihex_bool_t ihex_data_read (struct ihex_state *ihex,
                            ihex_record_type_t type,
                            ihex_bool_t checksum_error) {
    if (type == IHEX_DATA_RECORD) {
        unsigned long address = (unsigned long) IHEX_LINEAR_ADDRESS(ihex);
        (void) fseek(outfile, address, SEEK_SET);
        (void) fwrite(ihex->data, ihex->length, 1, outfile);
    } else if (type == IHEX_END_OF_FILE_RECORD) {
        (void) fclose(outfile);
    }
    return true;
}
Of course an actual implementation is free to do with the data as it chooses, e.g., burn it on an EEPROM instead of writing it to a file.

For an example complete with error handling, see the included program ihex2bin.c.

Example Programs

The included example programs, ihex2bin and bin2ihex, implement a very simple conversion between raw binary data and Intel HEX. Usage by example:

# Simple conversion from binary to IHEX:
bin2ihex <infile.bin >outfile.hex

# Add an offset to the output addresses (i.e., make the address
# of the first byte of the input other than zero):
bin2ihex -a 0x8000000 -i infile.bin -o outfile.hex

# Encode 64 input bytes per output IHEX line:
bin2ihex -b 64 <infile.bin >outfile.hex

# Simple conversion from IHEX to binary:
ihex2bin <infile.hex >outfile.bin

# Manually specify the initial address written (i.e., subtract
# an offset from the input addresses):
ihex2bin -a 0x8000000 -i infile.hex -o outfile.bin

# Start output at the first data byte (i.e., make the address offset
# equal to the address of the first data byte read from input):
ihex2bin -A -i infile.hex -o outfile.bin
Both programs also accept the option -v to increase verbosity.

When using ihex2bin on Intel HEX files produced by compilers and such, it is a good idea to specify the command-line option -A to autodetect the address offset. Otherwise the program will simply fill any unused addresses, starting from 0, with zero bytes, which may total mega- or even gigabytes.

Utilities

Four additional utilities are provided to help working with ROM images:

  • split16bit – splits a 16-bit ROM binary into two 8-bit halves

  • merge16bit – merges two 8-bit ROM binary halves into a single 16-bit file

  • split32bit – splits a 32-bit ROM binary into four 8-bit parts

  • merge32bit – merges four 8-bit ROM binary parts into a single 32-bit file

Both 16-bit utilities take the filenames of the high and low halves with the arguments -llow.bin and -hhigh.bin, respectively. The bytes are in little endian order, i.e., the one with the lowest address is the "low" half.

# Split 16bit.bin into low.bin and high.bin:
split16bit -i 16bit.bin -l low.bin -h high.bin

# Merge low.bin and high.bin into 16bit.bin:
merge16bit -o 16bit.bin -l low.bin -h high.bin
Both 32-bit utilities take the filenames of the four 8-bit files with the arguments -0, -1, -2, and -3, with byte 0 being the one with the lowest address, i.e., the bytes are in little endian order.
# Split 32bit.bin into a.bin, b.bin, c.bin, and d.bin
split32bit -i 32bit.bin -0 a.bin -1 b.bin -2 c.bin -3 d.bin

# Merge a.bin, b.bin, c.bin, and d.bin into 32bit.bin
merge32bit -o 32bit.bin -0 a.bin -1 b.bin -2 c.bin -3 d.bin
These utilities have nothing to with IHEX as such, but they are so small that it didn't seem worth the bother to release them separately.

page md__home_pat1_git_rmap_platformio_stima_v3_stimawifi_lib_esp32_arduino_sqlite3_lib_README

Note: This is a general purpose library based on the Sqlite codebase. For logging sensor data into database please use Sqlite Micro Logger, which is faster and memory efficient.

This library enables access to SQLite database files from SPIFFS or SD Cards through ESP32 SoC. Given below is a picture of a board that has a ready-made Micro SD slot (using SDMMC 4 bit mode - see example sqlite3_sdmmc):

../doxygen/xml/ESP_WROOM_32_breakout.png?raw=true

Also shown below is the wiring between ESP-WROOM-32 breakout board and Micro SD Shield (using SPI mode - see example sqlite3_sdspi):

../doxygen/xml/ESP32_MSD_Shield_Wiring.jpg?raw=true

Why Sqlite on ESP32 is exciting?

Sqlite3 is the favourite database of all that is portable and widely used. Availability on ESP32 platform makes it even more portable. Sqlite can handle terrabyte sized data, ACID compliant and guaranteed to be stable.

So far IoT systems could offer SD Card access, which enabled gigabyte size files accessible, but was not fully utilized because the libraries that were available so far (such as Arduino Extended Database Library or SimpleDB) offered only record number based or linear search and are terribly slow for key based indexed search.

Sqlite stores data in B+Tree pages and so can locate data from millions of records using variable length keys without exerting stress on CPU or RAM. This is demonstrated using the sample databases provided in the example sections.

Even with the 500 odd kilbytes RAM available on ESP32, millions of records and gigabyte sized databases can be accessed.

Usage

Sqlite3 C API such as sqlite3_open can be directly invoked. Before calling please invoke:

{c++}
  SD_MMC.begin(); // for Cards attached to the High speed 4-bit port 
  SPI.begin(); SD.begin(); // for Cards attached to the SPI bus
  SPIFFS.begin(); // For SPIFFS
as appropriate.

The ESP32 Arduino library has an excellent VFS layer. Even multiple cards can be supported on the SPI bus by specifying the pin number and mount point using the begin() method.

The default mount points are:

{c++}
  '/sdcard' // for SD_MMC 
  '/sd' // for SD on SPI
  '/spiffs' // For SPIFFS

and the filenames are to be prefixed with these paths in the sqlite3_open() function (such as sqlite3_open("/spiffs/my.db")).

Please see the examples for full illustration of usage for the different file systems. The sample databases given (under examples/sqlite3_sdmmc/data folder) need to be copied to the Micro SD card root folder before the SD examples can be used. Please see the comments section of the example.

Wiring

While there is no wiring needed for SPIFFS, for attaching cards to SPI bus, please use the following connections:

{c++}
* SD Card    |  ESP32
*  DAT2 (1)      -
*  DAT3 (2)      SS (D5)
*  CMD  (3)      MOSI (D23)
*  VDD  (4)      3.3V
*  CLK  (5)      SCK (D19)
*  VSS  (6)      GND
*  DAT0 (7)      MISO (D18)
*  DAT1 (8)      -

And for SD card attached to High-speed 4-bit SD_MMC port, use:

{c++}
* SD Card    |  ESP32
*  DAT2 (1)      D12
*  DAT3 (2)      D13
*  CMD  (3)      D15
*  VDD  (4)      3.3V
*  CLK  (5)      D14
*  VSS  (6)      GND
*  DAT0 (7)      D2
*  DAT1 (8)      D4

If you are using a board such as shown in the picture above, this wiring is ready-made.

Installation

Please download this library, unzip it to the libraries folder of your ESP32 sdk location. The location varies according to your OS. For example, it is usually found in the following locations:

Windows: C:\Users\(username)\AppData\Roaming\Arduino15
Linux: /home/<username>/.arduino15
MacOS: /home/<username>/Library/Arduino15
Under Arduino15 folder please navigate to packages/esp32/hardware/esp32/<version>/libraries

If you do not have the ESP32 sdk for Arduino, please see https://github.com/espressif/arduino-esp32 for installing it.

Dependencies / pre-requisites

No dependencies except for the Arduino and ESP32 core SDK. The Sqlite3 code is included with the library.

Limitations on ESP32

  • No serious limitations, except its a bit slow on large datasets. It takes around 700 ms to retrieve from a dataset containing 10 million rows, even using the index.

Limitations of this library

  • Locking is not implemented. So it cannot be reliably used in a multi-threaded / multi-core code set, except for read-only operations.

Limitations of Flash memory

Any Flash memory such as those available on SPIFFS or Micro SD cards have limitation on number of writes / erase per sector. Usually the limitation is 10000 writes or 100000 writes (on the same sector). Although ESP32 supports wear-levelling, this is to be kept in mind before venturing into write-intensive database projects. There is no limitation on reading from Flash.

Compression with Shox96

(Shox96 is deprecated and Unishox explained below will be supported in future).

This implementation of sqlite3 includes two functions shox96_0_2c() and shox96_0_2d() for compressing and decompressing text data.

Shox96 is a compression technique developed for reducing storage size of Short Strings. Details of how it works can be found here.

As of now it can work on only strings made of 'A to Z', 'a to z', '0-9', Special Characters such as &*() etc. found on keyboard, CR, LF, TAB and Space.

In general it can achieve upto 40% size reduction for Short Strings.

Usage

The following set of commands demonstrate how compression can be accomplished:

create table test (b1 blob);
insert into test values (shox96_0_2c('Hello World'));
insert into test values (shox96_0_2c('Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry''s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.'));
select txt, length(txt) txt_len from (select shox96_0_2d(b1) txt from test);
select length(b1) compressed_len from test;

See screenshots section for output.

Limitations (for Shox96)

  • Trying to decompress any blob that was not compressed using shox96_0_2c() will crash the program.

  • It does not work if the string has binary characters. that is, other than ASCII 32 to 126, CR, LF and Tab.

  • Dictionary based compression / decompression is not yet implemented.

Compression with Unishox

This implementation also includes two functions unishox1c() and unishox1d() for compressing and decompressing text data.

Unishox is a compression technique developed for reducing storage size of Short Unicode Strings. Details of how it works can be found here.

In general it can achieve upto 40% size reduction for Short Strings.

Usage

The usage is similar to that of Shox96, only in this case UTF-8 strings can be used.

See screenshots section for output.

Limitations (for Unishox)

  • Trying to decompress any blob that was not compressed using unishox1c() will crash the program.

Acknowledgements

Screenshots

Output of Micro SD example

../doxygen/xml/output_screenshot.png?raw=true

Output of SD Card database query through WebServer example

../doxygen/xml/output_web_1.png?raw=true../doxygen/xml/output_web_2.png?raw=true

SQLite console

../doxygen/xml/console_screenshot.png?raw=true

Unishox compression

../doxygen/xml/output_web_console.png?raw=true

Output of Querying StackOverflow DB through WebServer example:

../doxygen/xml/output_web_so.png?raw=true../doxygen/xml/output_web_so_id.png?raw=true../doxygen/xml/output_web_so_name.png?raw=true../doxygen/xml/output_web_so_loc.png?raw=true

Issues

Please contact the author or create issue here if you face problems.

page md__home_pat1_git_rmap_platformio_stima_v3_stimawifi_lib_esp32freertos_cpp_CONTRIBUTING

First off, thank you for thinking so highly of FreeRTOS Wrappers that you want to contribute to it! When I started this project, I never imaginged there would be so many folks interested in it. I am very happy this project has been useful to so many.

Bug reporting

The preferred bug reporting channel is via Github Issues

Push requests

Regarding contributing to the FreeRTOS source, (i.e. Emailing files, push requests, etc.), right now, and for the forseeable future, you will need transfer all copyrights to the original author of FreeRTOS wrappers for any work that you want considered for inclusion. This requirement shouldn''t limit you in any way. The code is released under the MIT License, so you always have access to it. You can also create as many derivative works as you want from it. But to have your code considered for inclusion back into the official code base, you need to provide a copyright assignment of that code.

page md__home_pat1_git_rmap_platformio_stima_v3_stimawifi_lib_esp32freertos_cpp_README

After working with FreeRTOS for over 12 years, I decided to start adding features and implementations that I wish would have been there at the beginning.

Current Features

  • C++ Wrappers

    • A collection of C++ wrappers encapsulating FreeRTOS functionality, allowing you to write your RTOS application in C++ while still using FreeRTOS. This wrapper layer does all the integration work for you.

    • This library is for you if you are planning on using C++ and FreeRTOS in your project but don't want to spend the time integrating the two.

    • Everything was tested successfully using FreeRTOS versions 8.2.3, 9.0.0, 10.0.0, and 10.5.1.

    • There are numerous demo / unit test projects using these wrappers and various features they provide. Last count we are at 48 Demo projects showing how you might use the C++ Wrapper library.

    • Licensing now follows the MIT Open Source License, the same as FreeRTOS starting from version 10.0.0.

    • Project web page

    • Full cross-referenced documentation. Documents were auto-generated and cross-referenced using Doxygen.

  • C Add-on Wrappers

    • A collection of C Add-on functionality for FreeRTOS. Right now these consist of:

    • Memory Pools: Fixed size memory allocation buffers. Using these elminates the possibility of memory fragmentation. There is overhead associated with these, so it's better if you are maximizing the size of each allocation.

    • Reader / Writer Locks: These allow multiple threads to simultaneously access a shared resource all as readers. If something needs to change, then a Writer lock needs to be taken which will allow a singe thread to modify the shared resource.

    • Workqueues: These allow you to queue "work" (i.e. a function) to a different thread. Useful if you have a lot of "one off" things that need to be done in different threads but they happen very asynchronous.

    • Licensing now follows the MIT Open Source License, the same as FreeRTOS starting from version 10.0.0.

    • There are numerous demo / unit test projects using these wrappers and various features they provide. Last count we are at 10 Demo projects showing how you might use the C libraries.

    • In addition, to support these there are implementations of standard optimized compter science singly linked lists, doubly linked circular lists, queues, and stacks.

    • Full cross-referenced documentation. Documents were auto-generated and cross-referenced using Doxygen.

  • Updated Linux port - REMOVED

    • I have switched to using the distributed GCC/Posix port that comes with the FreeRTOS Kernel, under the ThirdParty directory. All demos have been updated to point to this port.

Overall Releases

Version 1.6.1

  • https://github.com/michaelbecker/freertos-addons/releases/tag/v1.6.1

  • Updated Demos to now use the new FreeRTOS-Kernel directory structure hosted on Github.

  • Updated Demos to use the supported, distributed GCC/Posix port in the ThirdParty directory of the FreeRTOS Kernel.

  • Demos work with version 10.5.1 of the FreeRTOS Kernel.

  • Cleaned up Demo Makefiles. Leveraging a few common makefiles which are included in most other ones. Also renamed from makefile to Makefile, to better match Linux / make case conventions.

Version 1.6.0

Version 1.5.1

Version 1.5.0

Version 1.4.0

Version 1.3.2

Version 1.3.1

Version 1.3.0

  • https://github.com/michaelbecker/freertos-addons/releases/tag/v1.3.0

  • Added preprocessor variable "CPP_FREERTOS_NO_CPP_STRINGS". If you do not want to use C++ strings, simply define this in your makefile or project. Note that if you define this, you must also define "CPP_FREERTOS_NO_EXCEPTIONS". Some classes throw exceptions if they cannot be constructed, and the exceptions they throw depend of C++ strings.

  • Added an implementation of condition variables. These are not enabled by default. To use, define "CPP_FREERTOS_CONDITION_VARIABLES". Also include the files condition_variable.hpp and ccondition_variable.cpp in your project.

Version 1.2.0

  • https://github.com/michaelbecker/freertos-addons/releases/tag/v1.2.0

  • Adding preprocessor flag to exclude exceptions for smaller footprint and C++ compilers that do not support them.

  • Updated license to one similar to FreeRTOS version. What does that mean for you? It means you are free to use FreeRTOS C++ Wrappers in your commercial product without making your product open source.

Version 1.1.0

Version 1.0.2

Version 1.0.1

Version 1.0.0

TODO

This is my todo list for this project. If there's something you'd like to see done sooner, feel free to make a request.

FreeRTOS Features Not Yet Implemented

  • events

  • MPU restricted threads

  • eTaskGetState

  • uxTaskGetNumberOfTasks

  • uxTaskGetStackHighWaterMark

  • Thread Local Storage

New Value Added

  • In Timers, add OnStop / OnStart / mutex sync with these methods?

  • Priority queues

  • Tick Hooks - option to round robin hooks, one per tick

page md__home_pat1_git_rmap_platformio_stima_v3_stimawifi_README

con la stazione di monitoraggio ambientale Stimawifi.

Tutta la documentazione la trovate:

https://doc.rmap.cc/stima_wifi/stima_wifi_howto.html

Nello specifico

page todo

Module avr_boot

From email with Marek: On smaller devices (all except ATmega64/128), __SPM_REG is in the I/O space, accessible with the shorter "in" and "out" instructions - since the boot loader has a limited size, this could be an important optimization.

From email with Marek: On smaller devices (all except ATmega64/128), __SPM_REG is in the I/O space, accessible with the shorter "in" and "out" instructions - since the boot loader has a limited size, this could be an important optimization.

Class cpp_freertos::EventGroup

- document this class

dir /home/pat1/git/rmap/platformio/stima_v3/arduino_as_isp
dir /home/pat1/git/rmap/platformio/stima_v3/digitecoboot
dir /home/pat1/git/rmap/platformio/stima_v3/digitecoboot_ihex
dir /home/pat1/git/rmap/platformio/stima_v3/stimawifi/lib/esp32_arduino_sqlite3_lib
dir /home/pat1/git/rmap/platformio/stima_v3/stimawifi/lib/esp32freertos-cpp
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-leaf
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-opc
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-power
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-radiation
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-rain
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-th
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-thr
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-wind
dir /home/pat1/git/rmap/platformio/stima_v3/digitecoboot_ihex/ihex
dir /home/pat1/git/rmap/platformio/stima_v3/test_mqtt_sim800/include
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-wind/include
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-thr/include
dir /home/pat1/git/rmap/platformio/stima_v3/test_sensordriver/include
dir /home/pat1/git/rmap/platformio/stima_v3/stima/include
dir /home/pat1/git/rmap/platformio/stima_v3/stimawifi/include
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-th/include
dir /home/pat1/git/rmap/platformio/stima_v3/test_ntp/include
dir /home/pat1/git/rmap/platformio/stima_v3/test_i2c_multimaster/include
dir /home/pat1/git/rmap/platformio/stima_v3/test_mqtt_subscribe_sim800/include
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-rain/include
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-radiation/include
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-power/include
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-opc/include
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-leaf/include
dir /home/pat1/git/rmap/platformio/stima_v3/test_sensormanager/include
dir /home/pat1/git/rmap/platformio/stima_v3/test_sim800/include
dir /home/pat1/git/rmap/platformio/stima_v3/sensor_config/include
dir /home/pat1/git/rmap/platformio/stima_v3/sensor_config_menu/include
dir /home/pat1/git/rmap/platformio/stima_v3/sensor_config_menu_sdcard/include
dir /home/pat1/git/rmap/platformio/stima_v3/stimawifi/lib
dir /home/pat1/git/rmap/platformio/stima_v3/digitecoboot_ihex/pff
dir /home/pat1/git/rmap/platformio/stima_v3/digitecoboot/pff
dir /home/pat1/git/rmap/platformio
dir /home/pat1/git/rmap/platformio/stima_v3/SdFormatter
dir /home/pat1/git/rmap/platformio/stima_v3/sensor_config
dir /home/pat1/git/rmap/platformio/stima_v3/sensor_config_menu
dir /home/pat1/git/rmap/platformio/stima_v3/sensor_config_menu_sdcard
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-th/src
dir /home/pat1/git/rmap/platformio/stima_v3/stimawifi/lib/esp32_arduino_sqlite3_lib/src
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-thr/src
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-wind/src
dir /home/pat1/git/rmap/platformio/stima_v3/SdFormatter/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_lcd/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_jsonrpc/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_logging/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_i2c_multimaster/src
dir /home/pat1/git/rmap/platformio/stima_v3/sensor_config/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_hyt271/src
dir /home/pat1/git/rmap/platformio/stima_v3/sensor_config_menu/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_mqtt_sim800/src
dir /home/pat1/git/rmap/platformio/stima_v3/sensor_config_menu_sdcard/src
dir /home/pat1/git/rmap/platformio/stima_v3/stimawifi/src
dir /home/pat1/git/rmap/platformio/stima_v3/stima/src
dir /home/pat1/git/rmap/platformio/stima_v3/stimawifi/lib/esp32freertos-cpp/src
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-radiation/src
dir /home/pat1/git/rmap/platformio/stima_v3/arduino_as_isp/src
dir /home/pat1/git/rmap/platformio/stima_v3/digitecoboot/pff/src
dir /home/pat1/git/rmap/platformio/stima_v3/digitecoboot_ihex/pff/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_sim800/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_sensormanager/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_sensordriver/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_sdfat16/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_sdcard/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_rtc/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_ntp/src
dir /home/pat1/git/rmap/platformio/stima_v3/test_mqtt_subscribe_sim800/src
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-leaf/src
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-opc/src
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-power/src
dir /home/pat1/git/rmap/platformio/stima_v3/i2c-rain/src
dir /home/pat1/git/rmap/platformio/stima_v3/stima
dir /home/pat1/git/rmap/platformio/stima_v3
dir /home/pat1/git/rmap/platformio/stima_v3/stimawifi
dir /home/pat1/git/rmap/platformio/stima_v3/test_hyt271
dir /home/pat1/git/rmap/platformio/stima_v3/test_i2c_multimaster
dir /home/pat1/git/rmap/platformio/stima_v3/test_jsonrpc
dir /home/pat1/git/rmap/platformio/stima_v3/test_lcd
dir /home/pat1/git/rmap/platformio/stima_v3/test_logging
dir /home/pat1/git/rmap/platformio/stima_v3/test_mqtt_sim800
dir /home/pat1/git/rmap/platformio/stima_v3/test_mqtt_subscribe_sim800
dir /home/pat1/git/rmap/platformio/stima_v3/test_ntp
dir /home/pat1/git/rmap/platformio/stima_v3/test_rtc
dir /home/pat1/git/rmap/platformio/stima_v3/test_sdcard
dir /home/pat1/git/rmap/platformio/stima_v3/test_sdfat16
dir /home/pat1/git/rmap/platformio/stima_v3/test_sensordriver
dir /home/pat1/git/rmap/platformio/stima_v3/test_sensormanager
dir /home/pat1/git/rmap/platformio/stima_v3/test_sim800
page index

Introduction

software to collect weather data contributed by citizens; to make these data available for weather services and homeland security; to provide feedback to the data contributors so that they have the tools to check and improve their data quality

http://doc.rmap.cc

Howto

STIMA over Ethernet:

../_images/ethernet.jpg../_images/ethernet.jpg

Hardware

1) Stima I2C-Base @ 5V

2) Microduino Ethernet WIZ

3) Microduino RJ45

4) Stima core+1284 @ 5V

5) Stima I2C-RTC @ 5V

6) Stima FT232RL

7) Stima SD-Card

Software

1) open sketch arduino/sketchbook/rmap/rmap/rmap.ino

2) in arduino/sketchbook/rmap/rmap/rmap-config.h set STIMA_MODULE_TYPE_REPORT_ETH or STIMA_MODULE_TYPE_SAMPLE_ETH in MODULE_VERSION define

3) open arduino/sketchbook/libraries/RmapConfig/sensors_config.h and set true or false sensors's define and json's define in order to enable or disable relative sensor's driver and library

4) compile and upload firmware

5) short-circuit the two configure pins with a jumper and configure it!

STIMA over GSM/GPRS:

../_images/gsm.jpg../_images/gsm.jpg

Hardware

1) Stima I2C-Base @ 5V

2) Stima SIM800C Power

3) Stima SIM800C Module

4) Stima core+1284 @ 5V

5) Stima I2C-RTC @ 5V

6) Stima FT232RL

7) Stima SD-Card

Software

1) open sketch arduino/sketchbook/rmap/rmap/rmap.ino

2) in arduino/sketchbook/rmap/rmap/rmap-config.h set STIMA_MODULE_TYPE_REPORT_GSM or STIMA_MODULE_TYPE_SAMPLE_GSM in MODULE_VERSION define

3) open arduino/sketchbook/libraries/RmapConfig/sensors_config.h and set true or false sensors's define and json's define in order to enable or disable relative sensor's driver and library

4) compile and upload firmware

5) short-circuit the two configure pins with a jumper and configure it!

STIMA Passive:

../_images/passive.jpg../_images/passive.jpg

Hardware

1) Stima I2C-Base @ 5V / 3.3V

2) Stima core+1284 @ 5V / Stima core+644 @ 3.3V

3) Stima I2C-RTC @ 5V / 3.3V

4) Stima FT232RL

Software

1) open sketch arduino/sketchbook/rmap/rmap/rmap.ino

2) in arduino/sketchbook/rmap/rmap/rmap-config.h set STIMA_MODULE_TYPE_PASSIVE in MODULE_VERSION define

3) open arduino/sketchbook/libraries/RmapConfig/sensors_config.h and set true or false sensors's define and json's define in order to enable or disable relative sensor's driver and library

4) compile and upload firmware

5) short-circuit the two configure pins with a jumper and configure it!

STIMA I2C-TH:

../_images/th.jpg../_images/th.jpg

Hardware

1) Stima I2C-Base @ 3.3V

2) Stima core+644 @ 3.3V

3) Stima FT232RL

4) Stima SD-Card

Software

1) open sketch arduino/sketchbook/rmap/i2c-th/i2c-th.ino

2) open arduino/sketchbook/libraries/RmapConfig/sensors_config.h and set true or false sensors's define and json's define in order to enable or disable relative sensor's driver and library

3) compile and upload firmware

STIMA I2C-Rain:

../_images/rain.jpg../_images/rain.jpg

Hardware

1) Stima I2C-Base @ 3.3V

2) Stima core+644 @ 3.3V

3) Stima I2C-Digital

4) Stima FT232RL

5) Stima SD-Card

Software

1) open sketch arduino/sketchbook/rmap/i2c-rain/i2c-rain.ino

2) open arduino/sketchbook/libraries/RmapConfig/sensors_config.h and set false in all sensors's define and json's define

3) compile and upload firmware

STIMA Meteo Station assembly

../_images/station.jpg../_images/station.jpg

1) Stima over Ethernet or Stima over GSM

--> connect with a cable at 5V hub port --> in GSM/GPRS version: connect SMA antenna and insert a SIM card --> in Ethernet version: connect ethernet/POE cable

2) Stima I2C-TH

--> connect with a cable at 3.3V hub port

3) Stima I2C-Rain

--> connect with a cable at 3.3V hub port

--> connect at tipping bucket rain on 2 external pins of Stima I2C-Digital

4) I2C sensor's:

--> connect with a cable at 3.3V or 5V hub port

5) I2C LCD Display

--> connect with a cable at 5V hub port

6) Stima I2C-HUB

Power up the station through one of the following ways:

1) USB power supply with USB type B connector

2) Plug a POE cable into RJ45 interface (only for ethernet version)

3) 5V DC power supply through hub input port

4) DigitecoPower through hub input port with capability of 12V battery backup, solar panel or 12-30V DC input source voltage

in that case, the pins on the DigitecoPower module are:

1) VCC_IN: 12-30V DC input source VCC (+)

2) GND_IN: 12-30V DC input source GND (-)

3) VCC_BAT: 12V DC input/otput battery backup VCC (+)

4) GND_BAT: 12V DC input/otput battery backup GND (-)

5) Status LED: green for battery charged, orange for medium charged battery, red for low battery

6) VCC_OUT: 5V DC output for input hub connector VCC (+)

7) SCL: I2C SCL for input hub connector

8) SDA: I2C SDA for input hub connector

9) GND_OUT: 5V DC output for input hub connector GND (-)

Project Library

For details, look at the specific library files.

RmapConfig

This library contains the definitions that are useful for configuring some default values. Below is a list of the files contained therein.

debug_config.h: Enable or disable debug in sketch and library

ethernet_config.h: Ethernet configuration's parameters (IP, DHCP, delay, ecc..)

gsm_config.h: GSM configuration's parameters (APN, username, ecc..)

hardware_config.h: Hardware configuration's parameters (I2C bus clock, ecc..)

json_config.h: JSON configuration's parameters (buffer length)

lcd_config.h: LCD configuration's parameters (rows, columns, ecc..)

mqtt_config.h: MQTT configuration's parameters (topic length, buffers length, ecc..)

ntp_config.h: NTP configuration's parameters (timezone, server, ecc..)

sdcard_config.h: SDCARD configuration's parameters (name length, ecc..)

sensors_config.h: Enable or disable sensor driver sensors for specific sketch

Rmap

This library contains generic utility features. Below is a list of the files contained therein.

debug.h debug.cpp: Debugging functions for print debug message on serial port or LCD

eeprom_utility.h eeprom_utility.cpp: EEPROM utility for write and read eeprom

i2c_utility.h i2c_utility.cpp: I2C utility for bus recovery

registers.h: General register's define

registers-th.h: I2C-TH register's define

registers-rain.h: I2C-Rain register's define

rmap_utility.h rmap_utility.cpp: RMAP useful functions

sdcard_utility.h sdcard_utility.cpp: SD-Card useful functions

stima_module.h: STIMA station's definition

typedef.h: Useful project typedef

SensorDriver

This library is provided to read measurements from I2C sensors.

SensorDriverSensors.h: define list with sensor names in SensorDriver

SensorDriver.h SensorDriver.cpp: SensorDriver library files

HYT2X1

This library implements functions for read and configure HYT271 and HYT221 sensors.

hyt2x1.h hyt2x1.cpp: HYT2X1 library files

NTP

This library implements NTP functions for read time over NTP server with ethernet client or sim800 client.

ntp.h ntp.cpp: NTP library files

PCF8563

This library implements PCF8563 functions for communicate with pcf8563 real time clock.

pcf8563.h pcf8563.cpp: PCF8563 library files

SIM800

This library implements SIM800 functions for communicate with SIM800C/SIM800L GSM/GPRS module.

sim800.h sim800.cpp: SIM800 library files

sim800Client.h: SIM800 library interface for Arduino Client.

SIM800C is fully supported, SIM800L is partially supported (coming soon...)

Implemented features

Transport

o) Serial: yes

o) Ethernet: partial (basic functions are present but need to interface with Ethernet Client)

o) MQTT: partial (subscribe functions are present but need to interface with rpc process function)

See ArduinoJsonRPC library

SD-Card files

On the sdcard there is a file called mqtt_ptr.txt containing a binary data in uint32_t format corresponding to the seconds passed since 00:00:00 01/01/1970 indicating the last data sent by MQTT.

The data is recorded on files (one file for each recording day) named in the format yyyy_mm_dd.txt and each data recorded on sd card is MQTT_SENSOR_TOPIC_LENGTH + MQTT_MESSAGE_LENGTH bytes long (look at the mqtt_config.h file).

Each recorded data has the format of the type: TRANGE/LEVEL/VAR { “v”: VALUE, “t”: TIME}

SensorDriver's sensors

o) ADT7420 (ADT)

o) HIH6100 (HIH)

o) HYT221 (HYT)

o) HYT271 (HYT)

o) DigitecoPower (DEP)

o) I2C-TH (STH, ITH, NTH, MTH, XTH)

o) I2C-Rain (TBS, TBR)

o) I2C-Wind (DW1)

other sensors can be easily integrated (see SensorDriver library).